Dlaczego nie działa INSERT!? Dlaczego nie mogę zainicjować zadeklarowanej zmiennej!?

16-wrz-2011

Do tabeli chciałem dzisiaj wstawić kilka rekordów 'za jednym zamachem’. Można to zrobić poprzez polecenie:

INSERT Countries VALUES
(’EN’, 'England’,1),
(’PL’, 'Poland’,1),
(’G’,’Germany’,1),
(’CDN’,’Canada’,2),
(’USA’,’USA’,2)

Tymczasem pojawia się błąd:

Msg 102, Level 15, State 1, Line 2
Incorrect syntax near ’,’.

Błędu nie widzę, albo jestem ślepy ale przepisanie polecenia na pojedyncze INSERT pomogło.

Idziemy dalej. Deklaruje sobie zmienną i od razu ją inicjuję:

DECLARE @CSV VARCHAR(1000) = ”;

Znowu bład:

Msg 139, Level 15, State 1, Line 0
Cannot assign a default value to a local variable.

Przecież setki razy tak robiłem i działało. Czy mój komputer dzisiaj się buntuje!? Oczywiście przepisanie na 2 linijki pomogło. Można by o sprawie zapomnieć, ale przecież nie może to dać spokoju.

Cóż obie funkcje, których tu użyłem to nowości w SQL 2008. Może wobec tego po prostu podłączyłem się do innego serwera!?

Polecenie

SELECT @@VERSION

zwróciło odpowiedź twierdzącą:

Microsoft SQL Server 2005 - 9.00.1399.06 (Intel X86)
 Oct 14 2005 00:33:37
 Copyright (c) 1988-2005 Microsoft Corporation
 Developer Edition on Windows NT 6.1 (Build 7600: )

No to wszystko jasne. Podłączyłem się do serwra w wersji 2005 zamiast 2008.

Komentarze są wyłączone

Autor: Rafał Kraik