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

T-SQL - Using Trigger to monitor DML changes

阅读更多
1. Log table

IF NOT EXISTS (SELECT * FROM sys.objects WHERE object_id = OBJECT_ID(N'[dbo].[HotelOrder_OrderStatus_Log]') AND type in (N'U'))
BEGIN
CREATE TABLE [dbo].[HotelOrder_OrderStatus_Log](
[OrderStatusLogID] [int] IDENTITY(1,1) NOT NULL,
[AppName] [nvarchar](50) NOT NULL,
[EventInfo] [nvarchar](max) NOT NULL,
[SystemUser] [nvarchar](50) NOT NULL,
[HostName] [nvarchar](50) NOT NULL,
[TableName] [nvarchar](50) NOT NULL,
[RunTime] [datetime] NOT NULL
CONSTRAINT [PK__HotelOrder_OrderStatus_Log] PRIMARY KEY CLUSTERED
(
[OrderStatusLogID] ASC
)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON, FILLFACTOR = 90) ON [PRIMARY]
) ON [PRIMARY]
END
go

2. Trigger HotelOrder

IF NOT EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[CKHotelOrderupdateItem]'))
EXEC dbo.sp_executesql @statement = N'

CREATE trigger [dbo].[CKHotelOrderupdateItem] on [dbo].[HotelOrder]
for update
as
if update( OrderStatus ) and
( select top 1 createtime from inserted ) begin

set nocount on

declare @temp table ( EventType varchar(50), [Parameters] int ,EventInfo varchar(6000) )
declare @spid varchar(20)

set @spid = cast( @@spid as varchar )
insert @temp exec( ''DBCC INPUTBUFFER (''+ @spid +'')'' )

insert into [HotelOrder_OrderStatus_Log]
select App_Name(), EventInfo, SYSTEM_USER, Host_name(), ''HotelOrder'', getdate() from @temp
end'
go

3. Trigger HotelOrderDetail

IF NOT EXISTS (SELECT * FROM sys.triggers WHERE object_id = OBJECT_ID(N'[dbo].[CKHotelOrderDetailupdateItem]'))
EXEC dbo.sp_executesql @statement = N'

CREATE trigger [dbo].[CKHotelOrderDetailupdateItem] on [dbo].[HotelOrderDetail]
for update
as
if ( update( CheckInStatus ) or update( CheckOutStatus ) ) and
( select top 1 createtime from inserted ) begin

set nocount on

declare @temp table ( EventType varchar(50), [Parameters] int ,EventInfo varchar(6000) )
declare @spid varchar(20)

set @spid = cast( @@spid as varchar )
insert @temp exec( ''DBCC INPUTBUFFER (''+ @spid +'')'' )

insert into [HotelOrder_OrderStatus_Log]
select App_Name(), EventInfo, SYSTEM_USER, Host_name(), ''HotelOrderDetail'', getdate() from @temp
end'
分享到:
评论

相关推荐

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

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

    T-SQL学习资料(CSDN下载)集合

    1. T-SQL基础:包括SELECT、INSERT、UPDATE和DELETE等基本DML(数据操纵语言)语句,以及WHERE、GROUP BY、HAVING等用于筛选和分组的数据操作。 2. 存储过程(PROCEDURE):T-SQL支持创建和调用存储过程,这是一种预...

    Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码

    《Microsoft SQL Server 2005技术内幕:T-SQL查询的源代码》是一本深入探讨SQL Server 2005中T-SQL查询技术的专业书籍。T-SQL(Transact-SQL)是Microsoft SQL Server数据库管理系统中用于数据操作、查询、存储过程...

    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-...

    T-SQL示例大全,一个很不错的SQL示例,更快速掌握SQL,推荐使用。

    T-SQL,全称Transact-SQL,是微软SQL Server数据库管理系统中使用的SQL方言,它扩展了标准SQL的功能,提供了数据库交互、数据操纵和程序编写的能力。本资源“T-SQL示例大全”是一个非常宝贵的参考资料,对于学习和...

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

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

    T-SQL编程与应用

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

    T-SQL 语法参考手册.docx

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

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

    2. **数据操作语言(DML)**:T-SQL的DML部分包括INSERT、UPDATE和DELETE语句,分别用于插入新记录、修改现有记录和删除记录。理解这些操作对于数据库的日常维护至关重要。 3. **数据定义语言(DDL)**:通过CREATE...

    t-sql基础教程

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

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

    T-SQL,全称Transact-SQL,是微软SQL Server数据库管理系统中使用的SQL语言扩展版本。它是SQL标准的一个实现,提供了更多的数据库管理和编程功能。以下是对T-SQL的详细总结: 1. 数据查询:T-SQL的核心是SELECT语句...

    microsoft sql server 2008技术内幕 t-sql语言基础

    《Microsoft SQL Server 2008技术内幕:T-SQL语言基础》这本书是针对SQL Server 2008数据库管理系统,特别关注其Transact-SQL(T-SQL)语言的全面指南,非常适合初学者深入理解T-SQL的基础知识。T-SQL是SQL Server的...

    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`**: 创建一个新的表...

    T-sql 语言大全

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

Global site tag (gtag.js) - Google Analytics