2014-08-28 70 views
0

我需要将表重命名为保留字的CASE。当使用[]等分隔符时,我得到名称[CASE],这不是我的意图。这里明显的答案是不使用保留字作为名称,但是,我是项目的承包商,不知道通过更改名称会导致什么结果。sp_rename和保留字

+0

命名表CASE是一个坏主意。你确定你需要重新命名吗? – 2014-08-28 21:14:39

+2

这个名字将是'CASE',它并不真正“存储”括号,它们只是在使用该表来区别它和CASE表达式时才使用。但是,一旦创建,你可以这样做:'SELECT * FROM SYS.TABLES其中name =“CASE'',将得到的结果 – Lamak 2014-08-28 21:15:43

+0

除了一个事实,即命名表CASE,或任何其他保留字,是一个可怕的想法,有什么是真正的问题? – Andrew 2014-08-28 21:18:36

回答

0

正如在评论中提到的,使用保留关键字的表名是不是一个好主意。

这样做会要求每一个指表使用括号查询。查询变得更加复杂阅读,写作对这个表的查询变得更容易出错,等...

更重要的是,你可以保存所有的麻烦,如果你找到一个名字,是不是一个保留关键字。这个简单的解决方案没有缺点,并且可以在未来避免头痛。

+0

简单的解决方案实际上可能更有可能导致未来头痛。如果表被称为'case'并且被引用为'[case]',那么应该没有问题(除非它必须与错误的第三方实用程序和代码接口)。如果该表被称为“wibble”,并被引用为“wibble”,并且后来成为保留字,则代码可能必须更改! – 2014-08-28 22:01:29

+0

我相信一个正常表名(比如,如果他选择了“CourtCase”或“BriefCase”)成为保留字的风险很低。 – 2014-08-29 13:10:49