4
獲得過程文本我創建一個觸發器來跟蹤過程文本已經ALTER
版。如何改變之前,DDL觸發器
在數據庫DDL觸發器中, 可以通過/EVENT_INSTANCE/TSQLCommand
訪問當前過程文本。
即使在調查EVENTDATA()
之後,它也沒有包含ALTER
之前過程定義的值。
有沒有辦法檢索以前的文本,比如如何使用DELETED
表來訪問DML觸發器中的刪除值?
create trigger trgDDLAuditQuery
on database
for alter_procedure
as
begin
set nocount on;
declare @data xml
set @data = EVENTDATA()
insert dbo.tblQueryAudit(ObjectName, TSQLCommand)
select @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'nvarchar(256)'),
--; Only gets currently changed procedure text, not previous one
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)')
end
GO
@KM:「m.definition」返回當前文本,而不是以前的文本。我也嘗試過「sp_helptext」來返回值,但沒有成功。 – Sung 2009-10-05 19:01:02
謝謝,KM。我想我需要制定一個不同的計劃,以便按照我的要求工作。 – Sung 2009-10-06 13:12:27