`
xxd
  • 浏览: 21771 次
  • 性别: 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]
分享到:
评论

相关推荐

    T-SQL课件(介绍了T-SQL的一些基本知识)

    T-SQL提供了SQL的标准功能,如数据定义(DDL)、数据操纵(DML)和数据控制(DCL),同时增加了更多的编程元素,使其成为一种功能强大的非过程化编程语言。 1. T-SQL语言基础知识: - T-SQL是SQL的增强版,包含了...

    MICROSOFT SQL SERVER 2008技术内幕:T-SQL语言基础.pdf

    不过,我可以根据标题和描述提供的信息,以及对SQL Server 2008和T-SQL语言基础知识的理解,为您构建一份关于Microsoft SQL Server 2008中T-SQL语言基础知识的知识点概要。 Microsoft SQL Server 2008是微软公司...

    17套T-SQL试题

    T-SQL(Transact-SQL)是SQL Server的扩展,提供了更多的功能和特性,是数据库开发人员、管理员和分析师必须掌握的语言。本资源“17套T-SQL试题”显然是为了帮助学习者提升在T-SQL方面的知识和技能。 第一部分:T-...

    SQL Server高级查询与T-SQL编程知识点汇总

    SQL Server高级查询与T-SQL编程是数据库管理与开发中的核心技能,涵盖了多个关键知识点。以下是对这些主题的详细说明: 1. **数据库设计**: - **需求分析**:这是设计过程的第一步,旨在理解用户的需求,确定系统...

    T-SQL编程与应用

    T-SQL语言的基础编程功能包括ANSI SQL-92标准的四大组成部分:DDL(数据定义语言),DML(数据操纵语言),DCL(数据控制语言)以及DD(数据字典)。这些功能使得T-SQL不仅能够创建、修改和删除数据库结构,还能插入...

    t-sql基础教程

    1. **T-SQL基本结构**:T-SQL基于SQL标准,包括了数据查询语言(DQL)、数据定义语言(DDL)、数据操纵语言(DML)和数据控制语言(DCL)。DQL用于查询数据,如`SELECT`语句;DDL用于创建和修改数据库对象,如`...

    Microsoft SQL Server 2005技术内幕: T-SQL程序设计

    《Microsoft SQL Server 2005技术内幕:T-SQL程序设计》这本书深入探讨了SQL Server 2005中的Transact-SQL(T-SQL)编程技术,这是数据库管理和开发的重要组成部分。T-SQL是SQL Server的标准查询语言,用于执行数据...

    T-SQL 语法参考手册.docx

    《T-SQL 语法参考手册》是一份详细阐述在Microsoft SQL Server中使用的Transact-SQL语言的指南。T-SQL是SQL的扩展版本,专为SQL Server设计,它提供了更丰富的功能,使得开发者能更有效地管理和操作数据库。下面将...

    个人整理的比较完整的T-SQL总结

    5. DDL(Data Definition Language):T-SQL允许创建、修改和删除数据库对象,如表、视图、存储过程、索引等。CREATE TABLE用于定义新表,ALTER TABLE用于修改已有表结构,DROP TABLE用于删除表。 6. DML(Data ...

    T-SQL速写工具 -ASP源码.zip

    T-SQL包括数据查询、数据操纵(DML)、数据定义(DDL)、事务控制、错误处理等语句。在ASP应用中,T-SQL通常通过ADO(ActiveX Data Objects)或ADO.NET等数据访问技术来调用,实现对数据库的CRUD(Create、Read、...

    T-SQL编程入门经典(涵盖SQL Server 2008 & 2005)配书资源

    《T-SQL编程入门经典》是一本专为SQL Server 2008和2005用户设计的教程,旨在帮助初学者掌握T-SQL语言的基础知识和高级特性。T-SQL,全称Transact-SQL,是微软SQL Server数据库管理系统中使用的SQL方言,它在标准SQL...

    自己开发整理的T-SQL语句

    根据提供的标题、描述以及部分T-SQL代码内容,我们可以总结出以下重要的T-SQL知识点: ### 1. 数据定义语言(DDL) 数据定义语言主要用于创建、修改或删除数据库中的对象。 - **`CREATE TABLE`**: 创建一个新的表...

    SQL SERVER实用教程 T-SQL语言.pdf

    ### SQL SERVER实用教程 T-SQL语言 #### 一、SQL语言概述 1. **SQL语言简介**: - **名称**:SQL(Structured Query Language),即结构化查询语言。 - **起源与发展**:最初由IBM公司开发并在其数据库系统中...

    T-SQL编程入门(SQL Server)

    ### T-SQL编程入门(SQL Server) #### 一、T-SQL的组成 T-SQL (Transact-SQL) 是 Microsoft SQL Server 使用的一种扩展版本的 SQL 语言,它提供了额外的功能来增强 SQL 的功能,使开发者能够更高效地管理和操作...

    T-sql 语言大全

    【T-SQL 语言大全】 T-SQL,全称 Transact-SQL,是SQL语言的一个扩展,主要用于微软的SQL Server数据库管理系统中。它是SQL标准的一个实现,但包含了额外的功能和特有语法,使得开发者能够更加灵活地管理和操作...

    T-SQL帮助文档和学习资料

    **T-SQL(Transact-SQL)是微软SQL Server数据库管理系统中用于管理和操作数据的编程语言。它基于标准的SQL,但添加了更多的扩展功能,以支持存储过程、触发器、函数和其他数据库交互操作。本资源集合包含了T-SQL的...

    SQL参考手册(T-SQL)

    T-SQL(Transact-SQL)是SQL的一个扩展,由微软在其SQL Server产品中使用。本参考手册专注于T-SQL,它提供了丰富的功能,包括数据查询、数据更新、事务处理、存储过程创建以及复杂的查询操作。 T-SQL的基本组成部分...

Global site tag (gtag.js) - Google Analytics