2012-07-13 21 views
7

我有以下简单的T-SQL来创建表为什么在SSMS&VS T-SQL编辑器中列名“source”呈灰色显示?

CREATE TABLE NewsArticles 
(id INT NOT NULL IDENTITY(1, 1) PRIMARY KEY, 
lastCrawl DATETIME NULL, 
snippet NVARCHAR(2083) NULL, 
source NVARCHAR(2083) NULL, 
title NVARCHAR(2083) NULL, 
url NVARCHAR(2083) NULL) 

在这两个的Visual Studio 2012和SQL Server 2012 Management Studio中的“源”,在灰色的呈现,而其他列名呈现绿色SSMS或黑色VS.为什么?词“源”不会出现是一个保留字在the list of SQL reserved keywords

enter image description here

+0

这似乎是一个抽象的不重要的问题,但是当我尝试插入LINQ中将源列设置为null的行并且在诊断过程中受到其他呈现触发时出现错误。 – dumbledad 2012-07-13 10:09:40

+2

这是'MERGE'中使用的关键字。即'当不匹配源' – 2012-07-13 10:18:57

+0

完美 - 我想这是一个答案,谢谢马丁。你想将它从评论转移到回答,我会将其标记为这样吗? – dumbledad 2012-07-13 10:26:04

回答

9

它是在使用MERGE一个关键字。即WHEN NOT MATCHED BY SOURCE

单词MATCHED也表现出相同的行为,因为它在编辑器中被突出显示为灰色。

这些都不是reserved keywords尽管如此,如果用作标识符,他们不需要分隔(除非您发现语法突出分散注意力)。

+2

后续问题;如果您在查询中使用“源”或“匹配”,您是否应该以某种方式将其转义或将其括入括号中? – n00b 2016-10-25 19:00:31

+0

这是一个很好的问题......? – 2017-10-25 12:58:10

+0

@ n00b,你不需要逃避“来源”。但是,我没有测试过“匹配”。 – 2018-01-23 00:44:31

相关问题