監査の目的でSQL Server 2008 R2にトリガーを作成しようとしています。国の異なる場所の適切なタイムゾーンを取得するには、DATEADD()関数を使用して時間を変更するIF/ELSE IFステートメントに変数を渡そうとしています。ここに私のコードはあります:会話エラーを予期しているSQL Server
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
私は、すべてが予期した会話と言っているすべての種類のエラーを受けています。私はこれが何を意味するのか分かりません。私はそれをgoogledし、ちょうど混乱に追加されました。
取得したエラーは何ですか?また、クエリのどの部分ですか? –
IFとELSE IFステートメントのすべてが私にEXP CONTING CONVERSATIONエラーを与えています。 – bryanfm92