当前位置:  开发笔记 > 数据库 > 正文

在MS SQL Server中创建保留字/关键字的表名

如何解决《在MSSQLServer中创建保留字/关键字的表名》经验,为你挑选了7个好方法。

是否可以命名已经是关键字的数据库表?对于我的情况,我试图命名将保留我的用户的表.我把它命名为User但它在SQL Server Management Studio中显示为粉红色,所以我假设它是现有的系统表或关键字.谢谢你的建议.

保留关键字的官方列表:保留关键字(Transact-SQL)



1> 小智..:

重复这三次:

不要这样做,我不会使用保留的字!

你会感谢我的!


不幸的是,许多保留的关键字每天都有实用的用法(即``user`,`file`,`text`,`view`)
恭敬地不同意.不管怎样,将表名括起来是个好习惯.我使用的每个SQL工具,无论是MSFT还是第三方,都会自动执行此操作.所以在实践中,它没有太大的区别.
我们也不要忘记保留字从发布到发布都会发生变化.回到SQL Server 7天,人们在很多代码中使用了表名'Function',发现当它们将数据库升级到SQL 2000并且FUNCTION成为保留字时它就崩溃了.长话短说:在生产代码中,总是逃避你的对象名称!
很好地说,但并不总是你创造了这个桌子.鉴于表存在,你无法改变它 - 这样的答案并没有真正帮助.
为什么要折磨那些以后维护你的代码甚至是你自己的人呢?

2> Andy White..:

您可以创建与关键字同名的表.如果您"引用"表名,它应该起作用.SQL Server中的默认引号是方括号:[]

CREATE TABLE [dbo].[user](
    [id] [bigint] NOT NULL,
    [name] [varchar](20) NOT NULL
) ON [PRIMARY]


您应该始终引用所有字段名称.你永远不知道在未来的数据库中什么可能成为一个保留字.它永远不会造成任何伤害.

3> Jakob Christ..:

是的,没关系.在您的查询中,您可以将[和]放在表名周围,以便SQL Server知道您指的是表 - 即

CREATE TABLE [User] ...
SELECT * FROM [User]



4> brian-brazil..:

您可以使用[用户]执行此操作.如果可能的话,使用不与关键字冲突的表名,以避免混淆和错误.



5> 小智..:

对于MS Query,我发现双引号在Query中非常有效。

select T1."Reference"
from MyTable T1



6> Eduardo Cuom..:

使用"单引号"字符串,而"双引号"列名.

例:

INSERT INTO AccountMovement
("Date", Info)
VALUES
('2012/03/17', 'aa'),
('2012/03/17', 'bb'),
('2012/03/17', 'cc'),
('2012/03/17', 'dd')



7> Jon P..:

我坐在营地里说表名应该是复数,所以在你的情况下就是用户.

我喜欢这个惯例,因为它对我有意义.你有一个用户集合,所以打电话给你的表.如果您拉出一个可以填充名为User的对象的单行,则进一步向下游.

如果您的约定规定对表名使用单数,请使用不同的内容,例如:成员,客户等.

另见RacerX的答案!

如前所述,如果你[Braket]这个名字,那就好了.

推荐阅读
雨天是最美
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有