SQL Server表和类型名称相同

时间:2012-07-02 18:04:04

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

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

所以...我做错了什么?似乎可以区分表和类型,并且在T-SQL中没有可以使用“类型或表”的地方,所以代码不会模棱两可,但我有点害怕使用某些东西,这可能是坏的练习并需要建议。

2 个答案:

答案 0 :(得分:1)

这没有错,但是可能会被其他可能使用您的代码或接管模式的人所厌恶。对它进行建模,使它们不完全相同,即使在你的脑海中它们也可以。然后更容易说完,但遵循这一点并与之保持一致。

答案 1 :(得分:0)

我希望你的意思并不是A。它不再是70年代了,没有理由创造出这样混淆和毫无意义的名字。我确定这不是你真正称之为你的类型和表格,但我想提一下以防万一。

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