Как мне решить эти две ошибки при создании триггера? - PullRequest
1 голос
/ 11 марта 2011

Я создаю простой триггер, который отправляет мне электронное письмо, когда таблица обновляется или вставляется в:

IF EXISTS (SELECT name FROM sysobjects
      WHERE name = 'sportsNewsUpd' AND type = 'TR')
   DROP TRIGGER sportsNewsUpd
GO

CREATE TRIGGER sportsNewsUpd
ON sportsNews
FOR Insert, UPDATE
AS
    EXEC master.webdb.xp_sendmail 
    @recipients = 'name@email.com',
    @subject = 'Sports News has been altered.'
GO

Я получаю две ошибки: неверный синтаксис рядом с 'GO', 'CREATE TRIGGER' долженбыть первым заявлением в пакете запросов. Неверный синтаксис рядом с 'GO'.(два 'GO', две ошибки).

Мои ресурсы: http://msdn.microsoft.com/en-us/library/aa258254(v=sql.80).aspx (Б. под примерами) http://msdn.microsoft.com/en-us/library/ms189505.aspx

Ответы [ 3 ]

0 голосов
/ 11 марта 2011

попробовать:

IF EXISTS (SELECT name FROM sysobjects
          WHERE name = 'sportsNewsUpd' AND type = 'TR')
begin
    DROP TRIGGER sportsNewsUpd
end
GO  

CREATE TRIGGER sportsNewsUpd ON sportsNews FOR Insert, UPDATE AS 
    begin    
        EXEC master.webdb.xp_sendmail      
        @recipients = 'name@email.com',     
        @subject = 'Sports News has been altered.' 
    end 
GO
0 голосов
/ 11 марта 2011

Как вы выполняете запрос (ы)?

Я очень сомневаюсь, что вы получите эти ошибки при запуске скрипта из окна запроса SSMS.Кроме того, вы не получите ошибок, если будете запускать его, используя sqlcmd или osql.

Я имею в виду, что я подозреваю, что вы пытаетесь запустить скрипт из приложения, и поэтому вывозможно, не знал, что GO не является частью T-SQL.

Решение в этом случае будет разделить скрипт на две части и запустить каждую часть по очереди.

0 голосов
/ 11 марта 2011

точка с запятой после DROP TRIGGER sportsNewsUpd?

так ...

IF EXISTS (SELECT name FROM sysobjects
  WHERE name = 'sportsNewsUpd' AND type = 'TR')
DROP TRIGGER sportsNewsUpd;
GO
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...