Я пытаюсь создать триггер в SQL Server 2008 R2 для целей аудита. Чтобы получить правильный часовой пояс для разных мест по всей стране, я пытаюсь передать переменную в IF/ELSE IF для изменения часов с помощью функции DATEADD(). Вот мой код:Ожидание ошибки разговора Сервер Sql
CREATE TRIGGER epic_cover_insert
ON epic_cover
AFTER INSERT
AS
BEGIN
DECLARE @facilityCode INT
SET @facilityCode = (SELECT RIGHT(order_num, 3) FROM epic_cover)
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;
-- Insert statements for trigger here
UPDATE epic_cover
IF @facilityCode = 403 --for logan
BEGIN
SET Created_By = CASE WHEN Created_By IS NULL THEN SUSER_NAME()
WHEN APP_NAME() = 'Microsoft SQL Server Management Studio - Query' THEN SUSER_NAME()
ELSE Created_By END,
Created_On = DATEADD(HH,-1,GETDATE()
END
ELSE IF @facilityCode = 203 -- for Thermont
BEGIN
SET Created_By = CASE WHEN Created_By IS NULL THEN SUSER_NAME()
WHEN APP_NAME() = 'Microsoft SQL Server Management Studio - Query' THEN SUSER_NAME()
ELSE Created_By END,
Created_On = DATEADD(HH,1,GETDATE())
END
ELSE IF @facilityCode = 263 --for Saint Charles
BEGIN
SET Created_By = CASE WHEN Created_By IS NULL THEN SUSER_NAME()
WHEN APP_NAME() = 'Microsoft SQL Server Management Studio - Query' THEN SUSER_NAME()
ELSE Created_By END,
Created_On = GETDATE()
END
END
END
Я получаю всевозможные ошибки, которые все говорят EXPECTING CONVERSATION. Я не уверен, что это значит. Я googled это, и это только добавило к путанице.
Какая ошибка вы получаете и по какой части запроса? –
Все утверждения IF и ELSE IF дают мне ошибки EXPECTING CONVERSATION. – bryanfm92