記錄影響表的SQL
要確定列更新的來源,您可以在受影響的表上建立一個觸發器擷取負責更改的SQL。讓我們探討如何在 Microsoft SQL Server 2008 中實現此目的。
建立觸發器
利用 DDL 語句,您可以建立記錄表更新 SQL的觸發器:
CREATE TRIGGER trigger_name ON table_name AFTER UPDATE AS BEGIN -- Declare a variable to store the executed SQL DECLARE @sql_text VARCHAR(MAX); -- Retrieve the executed SQL from the context_info() function SET @sql_text = CAST(EVENTDATA() AS NVARCHAR(MAX)); -- Insert the SQL text into a log table or perform other desired actions INSERT INTO log_table (sql_text) VALUES (@sql_text); END;
存取已執行的SQL
建立觸發器後,可以在觸發器程式碼中使用EVENTDATA() 函數來擷取執行的SQL。 EVENTDATA() 函數提供對目前資料庫事件的資訊的訪問,包括導致該事件的 SQL 文字。透過提取此信息,您可以識別列更新的來源。
附加說明:
以上是如何記錄SQL Server 2008中修改特定表的SQL語句?的詳細內容。更多資訊請關注PHP中文網其他相關文章!