mssql- Incorrect syntax near 'GO'

0

Witam, pisząc procedury natrafiłem na problemy z instrukcją "GO", których nie rozumiem. W kodzie źródłowym zaznaczyłem ich miejsca, będę wdzięczny za pomoc.

--32.1 DROP PROCEDURE wypisz_samochody;
CREATE PROCEDURE wypisz_samochody @marka VARCHAR(20)
AS
SELECT * FROM samochod WHERE marka=@marka;
GO --nie ma problemu
EXECUTE wypisz_samochody 'opel'; 
GO --błąd

--32.2 DROP PROCEDURE zwieksz_pensje;
CREATE PROCEDURE zwieksz_pensje @id INT, @kwota DECIMAL
AS
UPDATE pracownik SET pensja=pensja+@kwota WHERE id_pracownik=@id;
GO --błąd
EXECUTE zwieksz_pensje 1, 1000;
SELECT * FROM pracownik WHERE id_pracownik=1;
--UPDATE pracownik SET pensja=1000 WHERE id_pracownik=1;
GO --błąd
1

W czym to puszczasz? Ja tu nie widzę żadnego błędu...

2

GO to nie część T_SQLa tylko komenda, którą rozpoznają programy: SSMS, sqlcmd i osql. Jako taka nie jest rozpoznawana jako przez samego SQL Servera i nie może być użyta w stored proc.

https://docs.microsoft.com/en-us/sql/t-sql/language-elements/sql-server-utilities-statements-go

0

Nie zrobiłem kompletnie nic (no oprócz ponownego uruchomienia Management Studio, chociaż nie wiem jak to miałoby pomóc) i nagle wszystko działa bez żadnych błędów. Dzięki za pomoc @Panczo i @abrakadaber

1

SSMS czasem tak ma, że podkreśla kod na czerwono pomimo tego, że nie ma błędu. Wynika to z tego, że czasami edytor nie rozumie kontekstu, np. nie ma wiedzy, że w wyniku działania tego kodu pojawi się jakaś procedura i kolejne linijki kodu wykonane po sobie będą działać.

1 użytkowników online, w tym zalogowanych: 0, gości: 1