在 SQL Server 2008 中,我有一个 DDL 触发器,它获取使用以下触发器创建的表的表名:
CREATE TRIGGER [tr_getName] ON DATABASE FOR CREATE_TABLE
AS
DECLARE @xmlEventData XML
DECLARE @TableName varchar(128)
-- Capture the event data that is created
SET @xmlEventData = eventdata()
IF OBJECT_ID('dbo.tNames', 'U') IS NOT NULL
BEGIN
DeAllocate tNames
END
DECLARE tNames CURSOR Read_Only
FOR SELECT CONVERT(VARCHAR(128), @xmlEventData.query('data(/EVENT_INSTANCE/ObjectName)'))
OPEN tNames
FETCH Next FROM tNames
INTO @TableName
...
...
但是,在 SQL Azure 中,不再支持 eventdata()。有没有办法在 SQL Azure 中实现同等功能? 谢谢
最佳答案
有关如何获取事件数据,请参阅以下页面:
http://msdn.microsoft.com/en-us/library/ms173781(v=sql.120).aspx
http://msdn.microsoft.com/en-us/library/ms187909(v=sql.120).aspx
关于t-sql - SQL Azure : Get Table Name on CREATE TABLE TRIGGER,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12325538/