监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
来源:互联网 发布:保定优化公司 编辑:程序博客网 时间:2024/05/16 15:35
如果你要同步不同数据库之间的数据,首先会想到的是数据库复制技术,但如果让你同步数据库的结构,你会想到什么呢?
下面是一个例子,用来说明通过sql server中的DDL触发器,来记录create table、alter table、drop table等ddl操作。
--2.1在master数据库中建立服务器级别跟踪表use mastergocreate table server_eventdata(eventdata xml, principal_user nvarchar(100), login_user nvarchar(100) )go /*select * from sys.trigger_event_typeswhere type_name like '%table%' or type_name like '%deny%' or type_name like '%revoke%'*/ --2.2建立服务器级别触发器create trigger gyy_serveron all serverfor create_table, alter_table, drop_tableasinsert into server_eventdataselect EVENTDATA(),USER,SUSER_NAME()go--2.3create database wcgouse wcgocreate table dbo.wc_table(v int)insert into dbo.wc_table values(1)gouse wcgoalter table dbo.wc_tableadd name varchar(100)alter table dbo.wc_tableadd tt datetime default getdate()go--查看记录的事件select --EVENTDATA, --里面是所有的信息 eventdata.value('(/EVENT_INSTANCE/EventType)[1]','nvarchar(100)') as '事件类型', eventdata.value('(/EVENT_INSTANCE/TSQLCommand)[1]','nvarchar(100)') as 'sql语句', eventdata.value('(/EVENT_INSTANCE/PostTime)[1]','datetime') as '执行时间' /* '登录名' + eventdata.value('(/EVENT_INSTANCE/LoginName)[1]','nvarchar(100)') + '用户名' + eventdata.value('(/EVENT_INSTANCE/UserName)[1]','nvarchar(100)') + ',授予者'+ eventdata.value('(/EVENT_INSTANCE/Grantor)[1]','nvarchar(100)') + ' 把类型为:' + eventdata.value('(/EVENT_INSTANCE/ObjectType)[1]','nvarchar(100)') + '的对象' + eventdata.value('(/EVENT_INSTANCE/DatabaseName)[1]','nvarchar(100)') + '.' + eventdata.value('(/EVENT_INSTANCE/SchemaName)[1]','nvarchar(100)') + '.' + eventdata.value('(/EVENT_INSTANCE/ObjectName)[1]','nvarchar(100)') + '的' + eventdata.value('(/EVENT_INSTANCE/Permissions/Permission)[1]','nvarchar(100)') +'权限授予给' + eventdata.value('(/EVENT_INSTANCE/Grantees)[1]','nvarchar(100)') */ from master.dbo.server_eventdata t/*事件类型 sql语句 执行时间 (无列名)CREATE_TABLEcreate table dbo.wc_table(v int) 2013-11-07 10:22:31.157NULLALTER_TABLE alter table dbo.wc_table add name varchar(100) 2013-11-07 10:23:59.987NULLALTER_TABLE alter table dbo.wc_table add tt datetime default getdate() 2013-11-07 10:24:00.013NULL*/
- 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
- SQL Server 2005中使用DDL触发器监控数据库变化
- sql server DDL触发器:监控数据库结构变化,并记录在 ddl_log 表中
- 用SQL Server 2005DDL触发器对数据库进行监控
- 监控SQL:通过SQL Server的DML触发器来监控哪些IP对表的数据进行了修改(2)
- SQL Server 2005中触发器监控数据库变化
- [sql server] sql2005 通过 DDL触发器同步数据库表结构
- 通过SQL 2005 系统表监控 SQL Server 的运行状况
- 通过SQL 2005 系统表监控 SQL Server 的运行状况
- 监控 SQL Server 的运行状况
- 监控 SQL Server 的运行状况
- sql Server 死锁的监控
- 监控 SQL Server 的运行状况
- 监控SQL Server的运行状况
- 监控SQL Server 的运行状况
- 监控 SQL Server 的运行状况
- 监控 SQL Server 的运行状况
- 监控 SQL Server 的运行状况
- 最近 由于项目需要被迫自己写一个 ajax gird 记录-1
- cocos2d-x VA_LIST的用法
- MFC控件使用
- 关于finish的startActivity
- Java加密技术(六)——数字签名算法DSA
- 监控SQL:通过SQL Server的DDL触发器来监控数据库结构的变化(1)
- 排序算法的时间复杂度和空间复杂度
- maven打包总结
- 网络编程之KeepAlive vs. heart-beat
- Java加密技术(七)——非对称加密算法最高级ECC
- 计算机体系结构3_单处理器内存访问顺序
- 掌握递归-递归理解和使用初探
- 查看Crontab日志
- Eclipse+Android 配置PhoneGap开发环境