日期:2014-05-17  浏览次数:20300 次

简单Trigger
有下面的一个表,数据如下 ,想写一个触发器,当插入一条数据或改变表的[限期]时,列[整理后的限期]跟着
变,如公司1的5天跟7天都为整理后限期的7天,用CASE WHEN ,要判断公司

公司号     限期        整理后限期
 1       5天            7天
 2       5天
 1       7天            7天
 2       7天
 1       15天
 2       13天
 1       17天

------解决方案--------------------

--没大搞明白lz的意思。。。
create trigger tri_name on tb for update,insert
as
begin
     --如公司1的5天跟7天都为整理后限期的7天
     if exists(select 1 from inserted where 公司=1 and (期限=5 or 期限=7))
        update TB set 整理后期限=7 where 公司=1 and (期限=5 or 期限=7)


end

------解决方案--------------------
CREATE trigger triI_tb
on tb
for insert
as
if @@rowcount>0 
begin
set nocount on
set ansi_warnings off

update tb set 整理后限期=7
where 公司号=1 and 限期 in(5,7)

end



CREATE trigger triu_tb
on tb
for update
as
If update(限期)
begin
set nocount on
set ansi_warnings off

update tb set 整理后限期=7
where 公司号=1 and 限期 in(5,7)

end

------解决方案--------------------
CREATE TRIGGER tr_UpdateDueTime
   ON  dbo.tb
FOR  INSERT
AS 
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
SET NOCOUNT ON;