Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/124.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 我应该使用SQL Server关键字作为列名吗?_Sql Server_Naming Conventions_Naming - Fatal编程技术网

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

Sql server 我应该使用SQL Server关键字作为列名吗?,sql-server,naming-conventions,naming,Sql Server,Naming Conventions,Naming,我正在设计一个数据库,最近在表DayOfWeek中命名了一列,完全忘记了DayOfWeek是SQL Server中的内置函数。现在我正在决定是否应该保持原样,用方括号[DayOfWeek]引用该列,或者更改列名以避免将来发生任何冲突。我对这个项目不太感兴趣,所以改变它并不难。我脑子里的争论是DayOfWeek的列名对于它的目的来说非常有意义,所以我真的想用它。。。但这是一个保留字。。。并且可能会在将来造成痛苦(特别是如果我在引用该列时总是必须将其置于方括号中) 大家怎么想 我会更改它-我有一个名

我正在设计一个数据库,最近在表DayOfWeek中命名了一列,完全忘记了DayOfWeek是SQL Server中的内置函数。现在我正在决定是否应该保持原样,用方括号[DayOfWeek]引用该列,或者更改列名以避免将来发生任何冲突。我对这个项目不太感兴趣,所以改变它并不难。我脑子里的争论是DayOfWeek的列名对于它的目的来说非常有意义,所以我真的想用它。。。但这是一个保留字。。。并且可能会在将来造成痛苦(特别是如果我在引用该列时总是必须将其置于方括号中)


大家怎么想

我会更改它-我有一个名为user的遗留表-一直以来,方括号都是一个难题。也许可以称之为“周末之日”或“周末之日”


乔希

如果容易的话,就把它换掉。但作为一种良好的做法,我会在所有地方使用方括号。一旦你习惯了,就不会比在单词之间留出空格更痛苦。

我们这里有一个名为User的表格。如果可能的话,我会改变它。尽管Josh是正确的,但您可以用方括号表示它是一个表,该任务很快就会过时。使用保留字作为表也会给其他开发人员带来困难。如果有人不知道这是一个保留字,那么很难确定查询为什么不起作用。

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


另外,我记得,有几次我遇到了像你这样的情况。但我被命名为“订单”:-

我会避免使用保留字,如果你不注意,你很容易陷入麻烦。

杰夫

如果你没有太多的时间去重命名这个列(相对而言),那么我建议你改变它。您已经确定了维护人员未来可能会遇到的一个难题,我想现在清理它的成本(随着时间的推移)实际上会更低,特别是考虑到自从文本编辑器和IDE中出现真正有效的搜索和替换功能以来,重命名某些东西并不是一件麻烦事

重命名it真正困难的部分是获得安全工作所需的理解。你是独一无二的(作为作者)有这种理解。如果你让我(举个例子)来做这项工作,那么这可能不是一个具有成本效益的商业提议

所以+1.为自己修理吸盘。。。和+2表示不再这样做;-)


干杯。Keith.

我总是确保我从不使用关键字作为任何变量/对象/函数的开头,因为你永远不确定你的目标语言是否会喜欢它。它经常会产生奇怪的错误,需要一段时间才能找到。即使语法检查确实发现了它,这也意味着你浪费了比它是另一个名字(如
FurryKitten
)更多的时间

我会避开周中的某一天,而选择完全不同的东西,可能是周中的某一天或周名。这只是省去了麻烦


加上-方括号只会让人头疼,还有很多SQL开发人员不使用方括号-新开发人员在加入团队后一段时间内会习惯性地创建“无括号”代码。如果可能的话,应该避免不寻常的惯例。

我将它改为Weekid的DayOfWeekId。这实际上效果更好,因为我在列中存储了一个int来表示一周中的某一天。我曾经在数据库中有一个名为User的表,我再也不会这样做了。以保留字命名的表肯定是坏东西。我脑子里的争论是,如果把列名作为保留字是否可以。。。但正如所有人所说,这并不值得(而且你还指出了一个更好的名字)。谢谢这是一个很好的观点。。。对我来说,现在给它改名相对容易,将来只会变得更难。每次有人需要键入两个方括号(或者记住他们必须键入方括号)时,将其相加,很快就会转化为大量的时间(和金钱)。我按照Josh的建议和DayOfWeekId一起去了。