当前位置: 代码迷 >> Sql Server >> sql server 2008 触发器有关问题
  详细解决方案

sql server 2008 触发器有关问题

热度:56   发布时间:2016-04-24 10:21:24.0
sql server 2008 触发器问题
现在作一个update 触发器,判断 触发的sql语句 只更新  发布时间 和 时间 才执行触发器中的方法,这个触发器应该如何写呢....

------解决方案--------------------
举个例子给你

create trigger t1 on table1 for update
as
begin
    declare @id int,@c int,@c1 int,@updatetime datetime
    select @id=id,@c=c,@updatetime=updatetime from inserted
    if datediff(dd,@updatetime,updatetime)=0   --条件
    begin
    update table2 set c=c-@c where id=@id
    end
end

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

假设你的表一共8列以内,你的这两个字段分别第3、第6列,你的触发器大概如下

CREATE TRIGGER tr_test ON test
AFTER UPDATE 
AS
    IF  SUBSTRING(COLUMNS_UPDATED(),1,1) & 219 <> 0
    begin
RAISERROR ('只允许修改字段3和6');
ROLLBACK TRANSACTION;

    end
GO

------解决方案--------------------
引用:
楼主查下COLUMNS_UPDATED函数 用法就可解决你的问题


学习了!
  相关解决方案