• linkedu视频
  • 平面设计
  • 电脑入门
  • 操作系统
  • 办公应用
  • 电脑硬件
  • 动画设计
  • 3D设计
  • 网页设计
  • CAD设计
  • 影音处理
  • 数据库
  • 程序设计
  • 认证考试
  • 信息管理
  • 信息安全
菜单
linkedu.com
  • 网页制作
  • 数据库
  • 程序设计
  • 操作系统
  • CMS教程
  • 游戏攻略
  • 脚本语言
  • 平面设计
  • 软件教程
  • 网络安全
  • 电脑知识
  • 服务器
  • 视频教程
  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase
您的位置:首页 > 数据库 >Mysql > SQLServer EVENTDATA()函数来获取DDL 触发器信息

SQLServer EVENTDATA()函数来获取DDL 触发器信息

作者:匿名 字体:[增加 减小] 来源:互联网 时间:2018-12-05

匿名通过本文主要向大家介绍了SQLServer,EVENTDATA,触发器等相关知识,希望本文的分享对您有所帮助

SQL Server 2005/2008中可以使用EVENTDATA函数来获取DDL触发器的上下文,从而在ROLLBACK之前截获DDL信息。EVENTDATA返回XML字段,下面的例子显示如何截获Drop Table的DDL信息。

代码如下:
-- Create a log table
CREATE TABLE TriggerLog (LogInfo xml)

-- Create a dummy table to delete later on
CREATE TABLE TableToDelete (Id int PRIMARY KEY)

-- 新建一个新表,作为删除实验表
INSERT INTO TableToDelete VALUES(1)
GO

-- 创建一个Drop Table 的 DDL
CREATE TRIGGER StopTableDrop ON DATABASE AFTER DROP_TABLE
AS
DECLARE @EventData AS xml
SET @EventData = EVENTDATA() -- 必须要在rollback之前截获DDL信息
ROLLBACK
PRINT 'DROP TABLE attempt in database ' + DB_NAME() + '.'
INSERT INTO TriggerLog VALUES(@EventData)

执行如下删除操作:
DROP TABLE TableToDelete
会触发上面的DDL,从而回滚操作。
执行下面的Sql:
SELECT * FROM TriggerLog
查看刚才截获的DDL信息。
分享到:QQ空间新浪微博腾讯微博微信百度贴吧QQ好友复制网址打印

您可能想查找下面的文章:

  • 如何获取SqlServer2005表结构(字段,主键,外键,递增,描述)
  • 如何在SQL Server中实现 Limit m,n 的功能
  • 深入Mysql,SqlServer,Oracle主键自动增长的设置详解
  • 小编带你深入解析SQL Server索引的原理
  • sqlserver帐号被禁用如何处理
  • sqlserver查询锁住sql以及解锁的方法
  • MS SQLServer 批量附加数据库的方法
  • SqlServer 2008 创建测试数据的方法
  • 讲解有关sqlserver分页查询处理方法
  • MYSQL同步Sqlserver数据库数据

相关文章

  • 2017-05-11mysql的XA事务恢复过程详解
  • 2018-12-05mysqlcheck修复数据库命令(Linux系统)
  • 2018-12-05一个效率很高的汉字转拼音首字母的函数
  • 2017-05-11MySQL中数据导入恢复的简单教程
  • 2018-12-05MySQL触发器之查看触发器
  • 2018-12-05什么是blob,mysql blob大小配置介绍
  • 2018-12-05Oracle9i在Win2k环境下的完全卸载
  • 2018-12-05mssql server 存储过程里,bulk insert table from ''路径+文
  • 2018-12-05理解redo(11)truncate和select的redo
  • 2018-12-05《python基础教程》笔记之条件语句和循环语句

文章分类

  • MsSql
  • Mysql
  • oracle
  • MariaDB
  • DB2
  • SQLite
  • PostgreSQL
  • MongoDB
  • Redis
  • Access
  • 数据库其它
  • sybase
  • HBase

最近更新的内容

    • Mysql中文乱码问题的最佳解决方法
    • 深入理解mysql SET NAMES和mysql(i)_set_charset的区别
    • MySQL 数据库双向镜像、循环镜像(复制)
    • MySQL5.7.10解压版详细安装教程
    • Mysql启动中 InnoDB: Error: log file ./ib_logfile0 is of diff
    • 求教连接mysql数据库的一个问题
    • GridView自定义分页的四种存储过程
    • 详解MySQL 触发器
    • sqlserver 数据库日志备份和恢复步骤
    • php实现数组纵向转横向并过滤重复值的方法分析

关于我们 - 联系我们 - 免责声明 - 网站地图

©2020-2025 All Rights Reserved. linkedu.com 版权所有