我正在尝试创建一个触发器,该触发器将记录一个表以跟踪所有DDL更改,包括:
使用EventData()和事件类型在表,视图,函数,过程和索引上。该表必须记录以下事件的信息
我也想跟踪添加约束和放置约束,但是没有支持该约束的事件类型。
如何将其添加到触发器中?
添加/删除约束的事件类型为ALTER_TABLE
这里是EventData()
XML用于添加/删除约束:
<EVENT_INSTANCE>
<EventType>ALTER_TABLE</EventType>
<PostTime>2019-12-12T21:44:41.633</PostTime>
<SPID>54</SPID>
<ServerName>XAMT-ULTRABOOK</ServerName>
<LoginName>XAMT-ULTRABOOK\XAMT</LoginName>
<UserName>dbo</UserName>
<DatabaseName>AdventureWorks2017</DatabaseName>
<SchemaName>HumanResources</SchemaName>
<ObjectName>Department</ObjectName>
<ObjectType>TABLE</ObjectType>
<AlterTableActionList>
<Drop>
<Constraints>
<Name>DF_Department_ModifiedDate</Name>
</Constraints>
</Drop>
</AlterTableActionList>
<TSQLCommand>
<SetOptions ANSI_NULLS="ON" ANSI_NULL_DEFAULT="ON" ANSI_PADDING="ON" QUOTED_IDENTIFIER="ON" ENCRYPTED="FALSE" />
<CommandText>ALTER TABLE [HumanResources].[Department] DROP CONSTRAINT [DF_Department_ModifiedDate]</CommandText>
</TSQLCommand>
</EVENT_INSTANCE>