我正在向数据库中添加一个表-CREATE TABLE dbo.Card
-SSMS突出显示单词Card
。我正在互联网上搜索,试图找出该词对SQL的含义以及是否为关键字。我没有看到它的微软列出SQL Reserved Words
除了突出显示困扰我之外,我关心的主要原因是我想避免使用任何保留的单词或关键字作为schema / table / column / etc ...名称。当我绝对必须-现有数据库时-我喜欢使用方括号使事情变得明确。
Card
是SQL中的保留字或关键字,还是出于任何其他原因不安全地用作标识符?
如果可以安全使用,谁能解释SSMS为何突出显示它?
如果使用100%安全作为表名,我很可能会选择其他名称。
Windows 8.1
SSMS v17.7
Red Gate - Up to date, including SQL Prompt 9.4.9
SQL Server 2017 (14.0)
Database Compatibility Level 2017 (140)
UPDATE
看起来主要共识是:
在这一点上,我只是很好奇,但至少我知道没有必要担心。谢谢大家的回答。
答案 0 :(得分:1)
否,card
不是Microsoft SQLServer或SQL ANSI标准中的反词。
答案 1 :(得分:0)
卡绝对不是SQL Server中的保留关键字
您可以查看保留字Reserved Keywords (Transact-SQL)的完整列表
SSMS突出显示它是因为原因……它可能被某处使用 MS SQL Server或SSMS
它们是Microsoft主观选择的各种关键字,并放在查询编辑器语法着色文件中的列表中。
我建议在指定表名和列名时使用带分隔符([]
或“)总是很好。
例如,您正在使用的脚本应写为
CREATE TABLE [dbo].[Card](<Columns>)