使用数据库级触发器记录数据库更改历史

 

--//

CREATE

go

USE

--

CREATE

 

DDLHistory

(

 

[Login] 

NVARCHAR(100),

[Action]

NVARCHAR(100),

[Schema] 

NVARCHAR(100 ),

Object 

TSQL 

)

go

--

CREATE

 

ON

DATABASE

FOR

DDL_DATABASE_LEVEL_EVENTS

AS

BEGIN

 

DECLARE @data XML

SET @data = eventdata ()

 

INSERT DDLHistory  ([Time], [Login], [Action], [Schema], [Object], TSQL)

VALUES

(GETDATE(), @data.value('data(//LoginName)[1]', 'NVARCHAR(2000)'),

@data

@data.value('data(//SchemaName)[1]', 'NVARCHAR(2000)' ),

.value('data(//EventType)[1]', 'NVARCHAR(2000)'),

@data

@data

END

go

--

CREATE

TestTable

(

 

)

go

ALTER

ADD

go

CREATE

AS

 

SELECT * FROM TestTable

go

CREATE

AS

 

SELECT * FROM TestTable

go

ALTER

AS

SELECT

go

 

ALTER

AS

 

 SELECT

END

go

--

SELECT

FROM  DDLHistory

use

go

--

---drop database Testdb

master ;
[Time], [Action], [Schema], [Object], TSQL
BEGINB FROM TestTable
PROC prcTestView
a FROM TestTable
VIEW vwTestView
PROC prcTestView
VIEW vwTestView
B INT
TABLE TestTable
A INT
TABLE
.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'NVARCHAR(2000)') )
.value('data(//ObjectName)[1]', 'NVARCHAR(2000)' ),
 
TRIGGER trDDLHistoryRecorder
NVARCHAR ( 2000 ) NVARCHAR ( 100 ), [Time] DATETIME , TABLE Testdb   DATABASE Testdb ;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值