我正在開發一個我的SSIS項目。我已經成功地將一些CSV加載到我的數據庫中(通過VS中的Integration Services),現在我正試圖在數據庫中創建一個觸發器。T-SQL(SQL Server 2016)觸發列值更改,在插入
我想要發生的事情是:當列second_road_class
的列數爲-1時,我希望它變成6.我希望觸發器在插入過程中觸發。
我的觸發器代碼似乎在SSMS中調試正常!但是當我稍後嘗試再次插入csv時,second_road_class
列與-1
保持原樣。
觸發代碼:
CREATE TRIGGER AccidentsTrigger
ON [Accidents]
INSTEAD OF INSERT
AS BEGIN
SET NOCOUNT ON
IF (SELECT [second_road_class] FROM INSERTED) LIKE '-1'
BEGIN
UPDATE [Accidents]
SET [second_road_class] = '6'
WHERE [second_road_class] = '-1'
END
END
感謝您的幫助。
這不起作用 - 'INSTEAD OF'的真正含義'INSTEAD OF' - 沒有行更新,因爲觸發器觸發第一個(沒有行將永遠被插入,除非你自己將該行插入到觸發器中)。 「它編譯!」或「它沒有使調試器barf」〜=按預期工作。 –
我真的嘗試了很多解決方法。現在我正在回答下面的問題 – Diaman