`
xxd
  • 浏览: 21215 次
  • 性别: Icon_minigender_1
  • 来自: 北京
最近访客 更多访客>>
文章分类
社区版块
存档分类
最新评论

T-SQL - Using Trigger to monitor DDL changes

阅读更多
CREATE TABLE [DatabaseLog] (
ID INT PRIMARY KEY IDENTITY(1,1),
Command NVARCHAR(1000),
PostTime NVARCHAR(24),
[Event] NVARCHAR(100),
[Schema] NVARCHAR(100),
LoginName NVARCHAR(100),
XmlEvent xml,
[object] NVARCHAR(100),
[login] NVARCHAR(100),
hostname NVARCHAR(100),
spid NVARCHAR(24))

CREATE TRIGGER [ddlDatabaseTriggerLog]
ON DATABASE
FOR DDL_DATABASE_LEVEL_EVENTS
AS
BEGIN
SET NOCOUNT ON;
DECLARE @data XML;
DECLARE @schema sysname;
DECLARE @object sysname;
DECLARE @eventType sysname;
SET @data = EVENTDATA();
SET @eventType = @data.value('(/EVENT_INSTANCE/EventType)[1]', 'sysname');
SET @schema = @data.value('(/EVENT_INSTANCE/SchemaName)[1]', 'sysname');
SET @object = @data.value('(/EVENT_INSTANCE/ObjectName)[1]', 'sysname')
DECLARE @loginname NVARCHAR(100)
DECLARE @hostname NVARCHAR(100)
DECLARE @spid NVARCHAR(6)
SET @loginname = @data.value('(/EVENT_INSTANCE/LoginName)[1]', 'NVARCHAR(100)')
SET @hostname = HOST_NAME()
SET @spid = @data.value('(/EVENT_INSTANCE/SPID)[1]', 'nvarchar(6)')
IF @object IS NOT NULL
PRINT ' ' + @eventType + ' - ' + @schema + '.' + @object;
ELSE
PRINT ' ' + @eventType + ' - ' + @schema;
IF @eventType IS NULL
PRINT CONVERT(nvarchar(max), @data);
INSERT [dbo].[DatabaseLog]
(
[PostTime],
[LoginName],
[Event],
[Schema],
[Object],
[Command],
[XmlEvent],
[login],
[hostname],
[spid]
)
VALUES
(
GETDATE(),
CONVERT(sysname, CURRENT_USER),
@eventType,
CONVERT(sysname, @schema),
CONVERT(sysname, @object),
@data.value('(/EVENT_INSTANCE/TSQLCommand)[1]', 'nvarchar(max)'),
@data,
@loginname,
@hostname,
@spid
);
END;
GO

CREATE TABLE dbo.Test(col INT)
DROP TABLE dbo.Test
SELECT * FROM [DatabaseLog]
分享到:
评论

相关推荐

    Beginning T-SQL 2012, 2nd Edition.pdf

    T-SQL consists of Data Definition Language (DDL) and Data Manipulation Language (DML) statements. This book focuses primarily on the DML statements, which you will use to retrieve and manipulate data....

    flink-sql-connector-kafka_2.11-1.11.2.jar

    flink-sql-connector-kafka_2.11-1.11.2.jar

    T-SQL语法书,dml ddl dcl

    一本关于SqlServer 2005的书,所有语法都有

    python小工具-sqlserver ddl转换为mysql规范ddl

    图形化实现sqlserver转换为mysql ddl(需字段注释) 应用于数据库、新老系统迁移,提升开发效率。

    sql-ddl-to-json-schema:SQL DDL到JSON模式转换器

    SQL DDL至JSON模式转换器 将SQL DDL语句转换为JSON格式(JSON模式和紧凑格式)。 承诺中 了解内部 手边的脚本Visual Studio程式码 链接 概述 使用以下SQL: CREATE TABLE users ( id INT ( 11 ) NOT NULL AUTO_...

    T-SQL基础

    T-SQL基础 T-SQL的组成 数据定义语言(DDL,Data Definition Language) 数据操纵语言(DML,Data Manipulation Language) 数据控制语言(DCL,Data Control Language) T-SQL基础运算符 比较运算符 核心作用主要用...

    flink-sql-connector-kafka-2.12-1.13.1.jar

    flink-sql-connector-kafka_2.12-1.13.1.jar 是 Apache Flink 的一个 Kafka SQL Connector 的 JAR 包,用于在...这个连接器支持 Flink SQL 的标准 DDL (Data Definition Language) 和 DML (Data Manipulation Language)

    Transact-SQL 命令集合_chm

    Transact-SQL命令集合 包括DML,DDL等SQL详细语法解释

    Transact-SQL权威指南

    Transact SQL性能协调及其应用工具 不同数据类型间的差别 复杂的统计计算 如中值 模式和平滑聚集 高级数据定义语言 DDL 和数据管理语言 DML

    mysql基础入门课程

    04. 基础-SQL-DDL-数据库操作 05. 基础-SQL-DDL-表操作-创建&查询 06. 基础-SQL-DDL-数据类型及案例 07. 基础-SQL-DDL-表操作-修改&删除 08. 基础-SQL-图形化界面工具DataGrip 09. 基础-SQL-DML-插入 10. 基础-SQL-...

    SQL Server 2014 Development Essentials - Masood-Al-Farooq, Basit A. [SRG].pdf

    What this book covers Chapter 1, Microsoft SQL Server Database Design Principles, ...SQL Server 2014 Database Engine, which you can use to monitor and troubleshoot its Database Engine performance.

    Transact-SQL编程规范

    SQL老师给我们学习的,希望喜欢的可以下来看 Transact-SQL编程规范 Transact-SQL编程规范 1 概述 3 1.1.基本原则 3 1.2.基本规范 3 命名规范 3 1.3.对象命名 4 1.3.1. 数据库 4 1.3.2. 数据库文件 4 1.3.3. 关系型...

    11-Hive-SQL语法

    HiveSQL思维导图,便捷整理思路,HiveBeeline、HiveDDL、HiveDML、Hive分区、HiveSerDe

    vitess-sqlparser:仅是用于GoSQL Parser(由vitess和TiDB支持)

    仅仅是Go语言SQL和DDL解析器(由vitess和TiDB支持),该库的灵感来自 (原始来源: : ) 为什么 是Go中著名的sql解析器。 但是它无法解析某些查询(例如偏移量或批量插入...),因为它自定义了vitess的sql解析器。...

    SQL基础-----DDL

    SQL语句主要可以划分为以下3个类别.DDL(DataDefinitionLanguages)语句:数据定义语言,这些语句定义了不同的数据段、数据库、表、列、索引等数据库对象。常用的语句关键字主要包括create、drop、alter等。.DML...

    wg-data-ddl.sql123456

    wg-data-ddl.sql123456

    SQL-PL-SQL:SQL-PL-SQL

    DML,DCL,DDL 用于创建这些对象SQL语句称为DDL或数据定义语言。 用于在这些对象中操作数据SQL语句称为DML或数据操作语言。 用于控制这些对象的行为SQL语句称为DCl或数据控制语言。创建表命令: Syntax: CREATE ...

    刘凝菲-DDL-DML.sql

    刘凝菲-DDL-DML.sql

    XML and JSON Recipes for SQL Server A Problem-Solution Approach

    is one of the technologies that SQL Server implements not only for data manipulation but also for many internal usages, such as Execution Plans, Extended Events, DDL trigger Eventdata() function, and ...

Global site tag (gtag.js) - Google Analytics