MS SQL 触发器

台湾佬为了防止乱更改数据,所以更改数据时要求把更改之前的的数据保存到另外一张表,也就是备份了,没有必要在项目中写,用触发器会简单很多

创建 MSSQL更改型触发器(mssql2008下):

create trigger UpdateSHInfo_bak 
on SHInfo
for update 
as
if update(S_LastUpdateTime) ---如果最后更新时间被更改了
begin
insert into SHInfo_bak (S_No,S_Name,S_Pwd,S_Sex,S_Birthday)  select d.S_No,d.S_Name,d.S_Pwd,d.S_Sex,d.S_Birthday  from Deleted d 
end

---------------2012-09-12新增------------------------

创建MSSQL增加性触发器(mssql2005下)

--- 创建触发器  当用户信息表UserInformation有新用户时自动给择偶条件表Conditions和ConditionsMeet表增加默认值
create trigger Tri_ConditionsDefault
on UserInformation
for insert
as
--定义变量
declare @UserID int,@err int;
select @UserID = UserId from inserted ---从inserted表中查找增加后的数据,因为Conditions表和Condition表除了UserID以外都给了默认值,所以这里只需要查找UserID
set @err = 0
begin tran
insert into Conditions (UserID) values(@UserID)
set @err = @err + @@error
insert into ConditionsMeet (UserID) values(@UserID)
set @err = @err + @@error
if(@err<>0)
begin
rollback tran
end
else
begin
 commit tran
end
posted on 2012-05-31 11:34  LitDev  阅读(476)  评论(0编辑  收藏  举报