用户名:  密码:
兄弟在线   

标题:SQL SERVER触发器trigger应用

作者:agui005 来源:http://www.xdlmn.com 时间:2011-03-11

1 新建表table1
USE [pubs]
GO
/****** 对象:  Table [dbo].[Table1]    脚本日期: 03/11/2011 14:50:50 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table1](
[id] [int] IDENTITY(1,1) NOT NULL,
[a] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 CONSTRAINT [PK_Table1] PRIMARY KEY CLUSTERED 
(
[id] ASC
) ON [PRIMARY]
) ON [PRIMARY]

2 新建表table2

USE [pubs]
GO
/****** 对象:  Table [dbo].[Table2]    脚本日期: 03/11/2011 14:52:20 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE TABLE [dbo].[Table2](
[id] [int] IDENTITY(1,1) NOT NULL,
[b] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[c] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
[d] [nvarchar](50) COLLATE Chinese_PRC_CI_AS NULL,
 CONSTRAINT [PK_Table2] PRIMARY KEY CLUSTERED 
(
[id] ASC
) ON [PRIMARY]
) ON [PRIMARY]


3  编写测试的trigger

Create trigger tb1
On table1
For Insert,Update,Delete
As 
  declare @id int,
          @a varchar(50)
If not exists(Select 1 from deleted)   ----Insert
    Begin
     select @id=id, @a=a from inserted
     insert into table2(b,c,d)values(@id,@a,'Insert')
    End
If exists(select 1 from inserted) and exists(select 1 from deleted) ---Update
  Begin
     /* Update Before */
     select @id=id, @a=a from deleted
     insert into table2(b,c,d)values(@id,@a,'UpdateBefor')
     /* Update End */
     select @id=id, @a=a from inserted
     insert into table2(b,c,d)values(@id,@a,'UpdateEnd')
  End
If not exists(select 1 from inserted)  ---Delete
  Begin
     select @id=id, @a=a from inserted
     insert into table2(b,c,d)values(@id,@a,'Delete')
  End


4 进行测试,

问题 如果出现在表更改数据时错误提示:数据未更新,已更新或删除的行值要么不能使该行成为唯一行,要么改变了多个行.

把原来的窗口关闭 然后重新打开再测试



总点击 [3396]   评论  0 查看评论
上一篇:sql server游标实现逗号隔开转in条件查询语句
下一篇:JS给文本框设置焦点位置
【关闭窗口】
您可能感兴趣的文章
我要评论
          
评论标题:   可以输入250
 
验证数字: 6 + 6 =
兄弟友情提示
· 请自觉遵守国家有关法律、法规,尊重网上道德。
· 兄弟在线坚决抵制不良言行,违者文责自负。
· 如果文章有版权或其他问题等,请联系我们,我们会尽快处理。
· 文章注名来自网络的旨在传播共享信息,不做其它用途;注名原创的本站支持原创,但不代表同意其观点。
· 兄弟在线拥有管理用户与其文章和评论的一切权利,并有权在网站内转载或引用。
兄弟在线
兄弟热门文章
兄弟推荐文章
兄弟站内搜索

兄弟感兴趣的文章
兄弟最新影视