如果我的数据库表已经是关键字了,我是否可以使用这些关键字来命名?对于我的情况,我正在尝试命名将保存我的用户的表。我把它命名为User,但在SQL Server Management Studio中显示为粉色,我认为它是现有的系统表或关键字。谢谢你的建议。
官方保留关键字列表:保留关键字(Transact-SQL)
如果我的数据库表已经是关键字了,我是否可以使用这些关键字来命名?对于我的情况,我正在尝试命名将保存我的用户的表。我把它命名为User,但在SQL Server Management Studio中显示为粉色,我认为它是现有的系统表或关键字。谢谢你的建议。
官方保留关键字列表:保留关键字(Transact-SQL)
请重复三次:
不要这样做,我不会使用保留字!
你会感激我的!
user
、file
、text
、view
)。 - puk您可以创建与关键字同名的表。 如果您使用“引号”括住表名,它应该能够正常工作。 SQL服务器中默认的引号是方括号:[]。
CREATE TABLE [dbo].[user](
[id] [bigint] NOT NULL,
[name] [varchar](20) NOT NULL
) ON [PRIMARY]
没问题。你可以在查询中在表名的左右加上 [ 和 ],这样SQL Server就知道你正在引用一个表了 - 即
CREATE TABLE [User] ...
SELECT * FROM [User]
在IT技术中,使用单引号表示字符串,而使用双引号表示列名。
例如:
INSERT INTO AccountMovement
("Date", Info)
VALUES
('2012/03/17', 'aa'),
('2012/03/17', 'bb'),
('2012/03/17', 'cc'),
('2012/03/17', 'dd')
对于MS Query,我发现在查询中使用双引号效果非常好。
select T1."Reference"
from MyTable T1
我认为表名应该使用复数形式,因此在您的情况下应该使用“Users”。
我喜欢这种约定,因为对我来说很有意义。你有一组用户,所以称呼你的表。如果你从下游拉出一个单独的行,那么它可以填充一个名为User的对象。
如果您的约定规定表名使用单数形式,请使用不同的名称,例如:Member、Client等。
另请参阅RacerX的答案!
如先前所述,如果您[Braket]名称,则技术上是可以的。
如上所述,您可以通过引用名称来执行此操作。当然,每次引用它时,您也必须引用该名称 - 相信我,这很快就会变得老套。
顺便说一句,仅因为SSMS语法突出显示该单词并不一定意味着它是保留字。 SQL可能会让人感到烦恼。;)
表格和列名(或者更一般的对象名)的基本规则:
不要使用任何与保留字相同或相似的内容。只能使用A-Za-z0-9和下划线。特别是不要使用空格。只使用不需要转义的名称,然后不要将转义用作永久测试。
你和与你一起工作或者将来会处理你的代码的所有人都不需要这种麻烦。
正如其他人所说,不要这样做;然而,我曾经也面临同样的问题。我的规则是所有表格都以单数形式存储。Organization而不是Organizations,Asset而不是Assets,PartsCatalog有很多Part等。
我有一个User表格,那么我该怎么称呼它呢?我最终选择了转义[User]。现在我后悔了这个决定,因为我总是忘记转义表格;但是,我还没有想出更好的名称:Member是首选。