【发布时间】:2019-02-01 21:24:01
【问题描述】:
我正在向我的数据库中添加一个表 - CREATE TABLE dbo.Card - SSMS 正在突出显示单词 Card。我正在互联网上搜索,试图找出该词对 SQL 的含义以及它是否是关键字。我在 Microsoft 的 SQL Reserved Words 列表中没有看到它。
除了突出显示困扰我之外,我关心的主要原因是我想避免使用任何保留字或关键字作为架构/表/列/等...名称。当我绝对必须 - 现有数据库 - 我喜欢使用方括号使事情变得明确。
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)
更新
看起来主要的共识是:
- 它不是保留或关键字
- SSMS 突出显示它是因为原因...它可能在某处被 MS SQL Server 或 SSMS 使用
此时我非常好奇,但至少我知道没有必要担心。谢谢大家的回答。
【问题讨论】:
-
感谢@AaronDietz 的链接。非常相似的问题,虽然我想知道为什么特别突出这个词。我能做出的最好猜测是与基数有关,但我真的不知道
-
我发现 this question on dba.StackExchange 可以回答这个问题,但我找不到任何上下文,其中“卡片”适合该案例。
-
好吧,作为参考,
start_date突出显示为蓝色,因为它用于创建证书命令。您可能必须深入研究 SQL Server 中的每个命令才能找到确切的原因。 -
只是一个疯狂的猜测。但我在List of future Keywords 上注意到
CARDINALITY在那里。也许 SSMS 已经为此突出显示了缩写CARD,以防万一?
标签: sql sql-server tsql sql-server-2017