首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 数据库 > SQL Server >

sql server 2005触发器有关问题,还请指教

2012-06-19 
sql server 2005触发器问题,还请各位高手指教当a表的字段a1,a2,a3被修改或该条记录被删除时,把修改或删除

sql server 2005触发器问题,还请各位高手指教
当a表的字段a1,a2,a3被修改或该条记录被删除时,把修改或删除之前的该条记录拷贝到另外一个历史表中

历史表的结果和a表完全一样

求这样的触发器如何编写

[解决办法]
类似这样


SQL code
CREATE TRIGGER trg_history ON table1for UPDATE, deleteasbegin      if update(a1) or update(a2) or update(a3)            begin                 INSERT INTO history_bak(....)  --列跟原表一致即可。                SELECT * FROM DELETED            end           IF EXISTS(SELECT 1 FROM DELETED ) AND NOT EXISTS(SELECT 1 FROM INSERTED)             BEGIN                INSERT INTO history_bak(....)  --列跟原表一致即可。                SELECT * FROM DELETED             END        end
[解决办法]
SQL code
if OBJECT_ID('tri_test') is not nulldrop trigger tri_testgocreate trigger tri_test on tbfor update,deleteasif (exists(select 1 from deleted)    and exists(select 1 from inserted))--如果是修改   or(   exists(select 1 from deleted)    and not exists(select 1 from inserted)--如果是删除   )begininsert 历史表select a1,a2,a3 from deletedendgo 

热点排行
Bad Request.