У меня есть проблема с условным сценария SQL в SQL Server 2008.Условный оператор SQL неправильный синтаксис
Когда я бегу каждую команду, как отдельный все в порядке, и я успешно обновить мой DB
Но когда я разделил все в одна команда, которую я получаю ошибки:
Msg 102, Level 15, State 1, Line 3
Неправильный синтаксис около ';'.Msg 207, Level 16, State 1, Line 1
Недопустимое имя столбца'AdvertTypeCode '.Msg 102, Level 15, State 1, Line 2
Неверный синтаксис рядом с «концом».
Так что я пробовал без запятой ';'
И ошибка:
Msg 102, Level 15, State 1, Line 3
Неправильный синтаксис около ')'.Msg 207, Level 16, State 1, Line 1
Недопустимое имя столбца'AdvertTypeCode '.Msg 102, Level 15, State 1, Line 2
Неверный синтаксис рядом с «концом».
Мой сценарий:
IF COL_LENGTH('TechnicalDialogue', 'sAdvertTypeCode') IS NULL
begin
ALTER TABLE TechnicalDialogue ADD sAdvertTypeCode varchar(40) ;
go
UPDATE TechnicalDialogue SET sAdvertTypeCode = 'advert.type.broadcast' ;
go
Select * FROM TechnicalDialogue;
end
Я не имею много опыта с SQL Server, так что я немного запутался.
Удалите 'GO', я не думаю, что вы можете использовать его в блоке. –
GO не является оператором SQL. Это [команда, используемая в клиенте для выполнения пакетов SQL] (http://stackoverflow.com/a/2668549/300836), поэтому вы не можете иметь ее в середине BEGIN/END. 'GO' отправит все с момента запуска сценария или последнего GO на сервер для выполнения, поэтому сервер видит' begin', но не 'end'. –
Спасибо, что помог мне, я этого не заметил :) – Mazeryt