我有一个触发器,它记录对数据库中表的元数据的更改。它将日志保存在另一个名为tblMonitorChange的表中。 当我重命名表时,不会生成触发器。
这是触发器:
USE ReportServer
GO
CREATE TRIGGER trgMonitorChange
ON DATABASE
FOR CREATE_TABLE, ALTER_TABLE, DROP_TABLE , RENAME_TABLE
AS
set nocount on
declare @EventType varchar(100)
declare @SchemaName varchar(100)
declare @ObjectName varchar(100)
declare @ObjectType varchar(100)
SELECT
@EventType = EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(max)')
,@SchemaName = EVENTDATA().value('(/EVENT_INSTANCE/SchemaName)[1]','nvarchar(max)')
,@ObjectName = EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(max)')
,@ObjectType = EVENTDATA().value('(/EVENT_INSTANCE/ObjectType)[1]','nvarchar(max)')
-- Is the default schema used
if @SchemaName = ' ' select @SchemaName = default_schema_name from sys.sysusers u join sys.database_principals p
on u.uid = p.principal_id where u.name = CURRENT_USER
insert into tblMonitorChange
select @EventType, @SchemaName, @ObjectName, @ObjectType, getdate(), SUSER_SNAME()
这是 1) 创建 TestTable,2) 将其重命名为 TestTable2,然后 3) 向其添加列的示例输出。
EventType SchemaName ObjectName ObjectType EventDate
CREATE_TABLE dbo TestTable TABLE 2017-11-01 10:55:44.590
ALTER_TABLE dbo TestTable2 TABLE 2017-11-01 14:36:07.543
但重命名尚未记录。
那么我如何监控重命名表?
任何帮助,将不胜感激。