Sql-Server
數據庫範圍的觸發器
我是 DBA 的新手,我正在嘗試創建一個觸發器,只要在數據庫中的每個表中進行插入,該觸發器就會更新一個表中的指定列。
我知道可以實現許多觸發器來解決這個問題,但是在我看來,如果它是在數據庫範圍內啟動的單個觸發器,它會更易於維護。
如果有一個觸發器是可能的,那麼是否還有理由我不應該有一個觸發器來管理所有表?
以下是我在逐個表的基礎上實現觸發器的目前方式:
CREATE TRIGGER [dac].[T_UpdateModelTime] ON [dac].[SubSpeciality] AFTER INSERT AS DECLARE @Table_Model_ID int SELECT @Table_Model_ID = Model_ID FROM SubSpeciality UPDATE ModelVersion SET DateLastEdited = GETDATE() WHERE ID = @Table_Model_ID; GO
額外細節
數據通過儲存過程插入到表中。
更新後的列需要秒內的時間敏感性。
我可以添加一個觸發器,它將為數據庫中每個表上的每個 UPDATE、INSERT 或 DELETE 觸發嗎?
不可以。根據文件,每個 TRIGGER 必須解析為在單個表上更新的列。
您的問題沒有神奇的解決方案,但通常使用幾種通用方法。