2012-07-13 24 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

相關問題