2012-07-13 4 views
7

Ho il seguente semplice TSQL per creare una tabellaPerché il nome della colonna "source" viene visualizzato in grigio nell'editor SSMS e VS T-SQL?

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) 

sia in Visual Studio 2012 e SQL Server 2012 Management Studio "fonte" è reso in grigio mentre gli altri nomi di colonna sono resi verde in SSMS o nero VS. Perché? La "fonte" parola non sembra essere una parola riservata in the list of SQL reserved keywords

enter image description here

+0

Questa può sembrare una domanda astratta senza importanza, ma ricevo errori quando tento di inserire righe da LINQ che hanno la colonna di origine impostata su null e durante la diagnosi sono rimasto colpito dal diverso rendering. – dumbledad

+2

È una parola chiave utilizzata in 'MERGE'. vale a dire "QUANDO NON ABBINATI DA SOURCE" –

+0

Perfetto - Penso che sia una risposta, grazie Martin. Vuoi spostarlo dal commento alla risposta e lo contrassegnerò come tale? – dumbledad

risposta

9

Si tratta di una parola chiave utilizzata in MERGE. Ad esempio WHEN NOT MATCHED BY SOURCE.

Anche la parola MATCHED presenta lo stesso comportamento in quanto viene evidenziata in grigio nell'editor.

Tuttavia, nessuno di questi è reserved keywords, quindi se utilizzati come identificatori non è necessario che siano delimitati (a meno che l'evidenziazione della sintassi non sia distraente).

+2

Domanda successiva; se stai usando 'source' o 'matched' in una query, dovresti scappare in qualche modo o racchiuderlo tra parentesi? – n00b

+0

questa è una buona domanda ...? –

+0

@ n00b, non è necessario uscire dalla "sorgente". Non ho ancora provato "abbinato", comunque. –