0
このサンプルコードがあります。それはすべてのT - SQLコードで正常に動作しますが、マウスクリックでSSMSにテーブルをドロップすると、イベントは追跡されません - 質問はなぜですか?DDLトリガーが確実に起動しないのはなぜですか?
-- create the table to store the events
CREATE TABLE dbo.CREATE_TABLE_LOG (
eventTime datetime
, eventOwner nvarchar(100)
, eventTSQL nvarchar(3000)
)
GO
-- create the DDL trigger
CREATE TRIGGER DDLTrigger_CreateTable ON DATABASE FOR create_table, alter_table, drop_table
AS
DECLARE @data XML
SET @data = EVENTDATA()
INSERT INTO CREATE_TABLE_LOG
VALUES (
GETDATE()
, CURRENT_USER
, @data.value('(/EVENT_INSTANCE/TSQLCommand/CommandText)[1]',
'nvarchar(1000)')
)
GO
ご質問ください。私は、私の仕事を二重チェックした後、さらに詳しい情報をお届けします。 – Ice
私はそれを上記のようにチェックし、それはうまくいきました。 SSMSでtogehterをクリックしてテーブルを再作成すると、ALTERテーブルが少しトリッキーになります(ステートメントへの挿入と名前変更テーブルは記録されません)。 – Ice