一张表同时建立触发器update和insert,如何判定执行条件

touxiansinuo018956 touxiansinuo018956 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
对一张表做两个触发器,分别是update和insert;
Insert的条件是目标表不存在源表的主键,则将一整行数据插入;
如果目标表存在源表的主键,且timestamp发生变化,则说明应该进行update操作,
Update发生改变的数据至目标表
create trigger trig_insert_transMore 
on transMore
for insert
as
if((transMore.priID)<>(transInfo.priID))
begin
insert into transInfo(priID,cardID,transType,transMoney )select priID,cardID,transType,transMoney from inserted
end


create trigger trig_update_transMore
on transMore
for update
as
if update(transDate)
--此处的判定条件该如何写,判断(transMore.priID)=(transInfo.priID),且transDate发生了改变
declare @temp_transMoney money,@temp_priID nchar(10),@temp_cardID nchar(10),@temp_transType nchar(10)
select @temp_transMoney=transMoney,@temp_priID=priID ,@temp_cardID=cardID,@temp_transType=transType from inserted
update transInfo
set
transMoney=@temp_transMoney,cardID=@temp_cardID,transType=@temp_transType
where priID=@temp_priID
go
...全文

相关推荐

评论 5
收藏 已收藏
分享
返回顶部
touxiansinuo018956
MS-SQL Server 34,876 成员 254,635 内容