我正在對基於SQL Server 2000的傳統應用程序進行一些調整,不用說我只想做最小的事情,因爲它可能會全部崩潰。INSTEAD OF UPDATE觸發器 - 這可能嗎?
我有一個用戶的大表,tbUsers,與IsDeleted BIT標誌。我想將所有當前和未來的IsDeleted = 1用戶記錄歸檔到我的歸檔表tbDeletedUsers中。
移動當前被刪除的用戶很簡單,但我想要一種方法來移動設置了IsDeleted標誌的未來用戶。我可以在列上使用標準的AFTER觸發器,但是我打算在tbUser表中添加一些違反此約束的約束,我希望我的INSTEAD OF UPDATE觸發器觸發並將記錄移動到歸檔表中?
我想我的問題是......是否有可能在更新某個列時觸發INSTEAD OF UPDATE觸發器?這是我到目前爲止:
CREATE TRIGGER trg_ArchiveUsers
INSTEAD OF UPDATE ON tbUsers
AS
BEGIN
...
END
GO
如果是這樣一個例子(SQL 2000兼容)將不勝感激!
最新動態( columnName)在SQL Server中不存在。而是使用COLUMNS_UPDATED(columnName)。 http://msdn.microsoft.com/en-us/library/ms186329.aspx – 2013-01-04 21:19:08
謝謝你的評論。你是對的,在SQL Server中沒有UPDATES()函數,也沒有UPDATED(),正如我最初寫的那樣。它實際上稱爲[UPDATE()](http://msdn.microsoft.com/en-us/library/ms187326.aspx)。編輯我的答案,並再次感謝我的錯誤引起我的注意。 – 2013-01-05 11:44:21
而你似乎也錯了,因爲COLUMNS_UPDATED()不接受參數。它返回一個位掩碼,它反映了調用觸發器的語句所影響的所有列。我從來沒有使用過這個功能,但是從手冊來看,我想我已經有了一個大概的想法。 – 2013-01-05 11:49:48