2012-06-28 12 views
8

To nie jest problem, z którym się spotykam. Ale po prostu zastanawiam się, że pierwsza linia w poniższym kodzie powinna być traktowana przez SQL Server jako błąd składniowy z powodu dodatkowego przecinka (,) na końcu listy kolumn. Ale uruchamia kod grzywny. Czy ktoś zna przyczynę?Dlaczego SQL Server nie traktuje tego kodu błędnie?

+0

Zakładam, że jest to projekt decyzja o złagodzeniu dynamicznego sql, gdy nie musisz pomijać przecinka. Podobnie do tego, dlaczego LINQ pozwala na taki anonimowy typ w C#: 'new {a = 1, b = 2, c = 3,}'. –

+6

Nie powinien być dozwolony przez [gramatykę] (http://msdn.microsoft.com/en-us/library/ms174979.aspx), ale [w większości przypadków nieszkodliwy] (https://connect.microsoft.com/SQLServer/ feedback/details/273348/last-comma-allowed-in-create-table) –

+1

@Martin Smith: To zależy, jeśli n na diagramie zawiera 0 lub nie. Składnia nie zawiera definicji (przynajmniej nie znalazłem). – Stefan

Odpowiedz

1

Powinien być oznaczony jako błąd składniowy, ale w programie SQL Server występuje błąd, który nie traktuje przecinka jako błędu składni.

Źródło: Microsoft Support (Wersje dotknięte w liście - 6, 6,5 i 2000 - są stare, ale myślę, że to nadal około, ponieważ właśnie pracował dla mnie w 2008 roku)

Powiązane problemy