我应该使用SQL Server关键字作为列名吗?

时间:2009-06-19 10:50:03

标签: sql-server naming-conventions naming

我正在设计一个数据库,最近在DayOfWeek表中命名了一个列,完全忘记了DayOfWeek是SQL Server中的内置函数。现在我决定是否应该保持原样并使用方括号引用该列[DayOfWeek]或更改列名以避免将来发生任何冲突。我不太喜欢这个项目所以改变它并不太难。我脑子里的争论是,DayOfWeek的专栏名称对其目的非常有意义,所以我真的想用它......但这是一个保守的词......并且可能在将来引起痛苦(特别是如果在引用列时,我总是需要在它周围放置方括号。

每个人都在想什么?

7 个答案:

答案 0 :(得分:12)

我会改变它 - 我有一个名为user的遗留表 - 它一直是方括号的痛苦。也许称之为DayOfWeekName或DayOFWeekId

约什

答案 1 :(得分:4)

杰夫,

如果你不是在轨道上太远而无法轻松地重命名列,那么我建议你改变它。你已经确定了主要工作人员的一个可能的未来头痛问题,我想现在清理它会花费更少(随着时间的推移),特别是考虑到重命名某些东西不是因为在文本编辑器和IDE中实现真正有效的搜索和替换功能。

重命名它真正难以获得安全工作所需的理解。你是唯一的(作为作者)有这种理解。如果你(仅举例)要求我做这项工作,那么它可能不是一个具有成本效益的商业主张。

所以... +1用于自己固定吸盘... + +2用于不再做它; - )

干杯。基思。

答案 2 :(得分:1)

我总是确保我从不使用关键字作为任何变量/对象/函数的开头,因为你不确定你的目标语言是否会喜欢它。它通常会产生古怪的错误,需要一段时间才能追踪。即使语法检查确实捡起来,也意味着你浪费的时间比FurryKitten之类的其他名称浪费的时间更长。

我会避免使用DayOfWeek并选择完全不同的内容,可能是WeekdayDayName。它只是省去了麻烦。

正方形 - 方括号只是让人头疼,并且有很多SQL开发人员不使用括号 - 新的开发人员最终会在他们加入后的一段时间内创建“非括号”的代码团队。如果可能的话,应该避免不常见的惯例。

答案 3 :(得分:0)

如果容易改变它。但作为一种好的做法,我到处都使用方括号。一旦你习惯了,就不会比在文字之间留出空间更痛苦。

答案 4 :(得分:0)

我们这里有一个名为User的表。如果可能的话,我会改变它。虽然Josh是正确的,但您可以放置​​方括号来表示它是一个表,该任务很快就会变老。使用保留字作为表也使其他开发人员很难。如果某人不知道这是一个保留字,则很难确定查询无效的原因。

答案 5 :(得分:0)

如果您使用任何数据库适配器/抽象库从数据库获取数据,请不要担心。类将为您转义列名称。如果您自己编写SQL查询,那么它可能会产生一些麻烦。您需要在查询中转义列名称。

P.S。我记得,很少有人像你一样处境。但我被命名为“秩序”列: - )

答案 6 :(得分:0)

我会避免使用保留字,如果你不注意,你可能会很容易陷入困境。