SQL SERVER 2005 でトリガーを使用すると、eventdata() は常に空の値を返します。
Audit テーブルに挿入された日付のみ、その他のフィールドは NULL 値
助けてください
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TRIGGER [dbo].[TrigDip]
ON [dbo].[Dip]
AFTER INSERT,DELETE,UPDATE
AS
BEGIN
DECLARE @ed XML
SET @ed = EVENTDATA()
DECLARE @db varchar(1000)
set @db =EVENTDATA().value('(/EVENT_INSTANCE/DatabaseName)[1]', 'varchar(256)')
PRINT 'CREATE TABLE Issued.'
INSERT INTO Audit (PostTime, DatabaseName, Event, ObjectName, TSQL, Login)
VALUES
(
GetDate(),
@db,
EVENTDATA().value('(/EVENT_INSTANCE/EventType)[1]', 'nvarchar(100)'),
EVENTDATA().value('(/EVENT_INSTANCE/ObjectName)[1]', 'varchar(256)'),
EVENTDATA().value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(2000)'),
CONVERT(nvarchar(100), CURRENT_USER)
)
END