读书人

100分求一触发器的写法,该如何处理

发布时间: 2012-01-15 22:57:49 作者: rapoo

100分求一触发器的写法


表 z_attribute 表 z_attribute_backup

两个表字段相同 对表z_attribute 应用触发器

CREATE TRIGGER insert_backup ON [dbo].[z_attribute]
FOR INSERT,update
AS
insert into z_attribute_backup(userid,部门,班组,岗位,行政级别,人事属性,原因)
select userid,部门,班组,岗位,行政级别,人事属性,原因 from inserted

但是我想加个条件 就是如果INSERT,update 表z_attribute时 字段 原因 = '进店 '时 触发器 不起作用(就是不insert into z_attribute_backup)
如何在这个触发器里实现??

求明白人解惑!~!

[解决办法]
CREATE TRIGGER insert_backup ON [dbo].[z_attribute]
FOR INSERT,update
AS
if not exists(Select * from inserted where 原因 = '进店 ')
begin
insert into z_attribute_backup(userid,部门,班组,岗位,行政级别,人事属性,原因)
select userid,部门,班组,岗位,行政级别,人事属性,原因 from inserted
end
go
[解决办法]
--或者意思是

CREATE TRIGGER insert_backup ON [dbo].[z_attribute]
FOR INSERT,update
AS
insert into z_attribute_backup(userid,部门,班组,岗位,行政级别,人事属性,原因)
select userid,部门,班组,岗位,行政级别,人事属性,原因 from inserted
where 原因 <> '进店 '
go

[解决办法]
CREATE TRIGGER insert_backup ON [dbo].[z_attribute]
FOR INSERT,update
AS
declare @str varchar(500)
set @str=(select 原因 from inserted)
if @str= '进店 '
begin
--不处理
end
else
begin
insert into z_attribute_backup(userid,部门,班组,岗位,行政级别,人事属性,原因)
select userid,部门,班组,岗位,行政级别,人事属性,原因 from inserted
end

读书人网 >SQL Server

热点推荐