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

你可能感兴趣的:(sql)