【问题标题】:SQL Server Table and Type names are sameSQL Server 表和类型名称相同
【发布时间】:2012-07-02 18:04:03
【问题描述】:

我需要很多对表和具有相同结构的类型(对于表值参数)。在考虑正确的命名约定时,我不小心创建了两个:表和类型,具有相同的名称。 IE。我有表 A(x int) 和类型 A(x int)。

那么……我做错了什么吗?好像表和类型是可以区分的,T-SQL中没有可以使用“类型或表”的地方,所以代码不会有歧义,但我有点害怕使用一些东西,可能不好练习并需要建议。

【问题讨论】:

  • 我不会做任何可能让下一个必须阅读您的代码的人感到困惑的事情。
  • 可以使用[type][table]等,避免使用保留关键字的问题。但如上所述,它会造成混乱和错误,而且通常是个坏主意。

标签: sql sql-server sql-server-2012


【解决方案1】:

这并没有错,但可能会被其他可能利用您的代码或接管架构的人所反对。对其进行建模,以使它们不完全相同,即使在您看来它们可能是一样的。说起来容易做起来,但要遵循并与之保持一致。

【讨论】:

    【解决方案2】:

    我希望你不是真的想A。现在已经不是 70 年代了,没有理由创建这样模糊和无意义的名称。我确定这不是您真正所说的类型和表格,但我想提一下以防万一。

    如果您需要区分真实表和表示完全相同结构和实体的 TVP,这确实没有问题,但您始终可以将您的类型重新创建为 dbo.TableName_TVPdbo.TVP_TableName -并始终如一地使用此约定。这样,当有人遇到引用其中一个或另一个的代码时,TVP 引用会脱颖而出(因为希望 TVP 引用在您的代码中远不如对基表的引用常见)。

    【讨论】:

    • 天啊,当然“A”只是一个例子,并不是真名。
    • 这是我的假设,但就像我说的,我想提一下以防万一。
    猜你喜欢
    • 1970-01-01
    • 2013-11-29
    • 2020-10-16
    • 1970-01-01
    • 2011-06-27
    • 2022-06-10
    • 1970-01-01
    • 2012-01-25
    • 1970-01-01
    相关资源
    最近更新 更多