求一Sql触发器,向表里插入数据时判断该条记录是否存在,如果存在则更新,不存在则插入
求一Sql触发器,向表里插入数据时判断该条记录是否存在,如果存在则更新,不存在则插入!
[解决办法]
1、--处理的触发器示例
create trigger tr_insert on 表
instead of insert --注意触发器的类型
as
--更新已经存在的主键
update 表 set name=b.name,sex=b.sex
from 表 a join inserted b on a.id=b.id
--插入存在的主键数据
insert 表
select a.*
from inserted a left join 表 b on a.id=b.id
where b.id is null
go
——————————————————————————————————————————
2、--触发器
CREATE TRIGGER tri_edit ON tab
INSTEAD OF INSERT
AS
if exists(select col1,col2 from tab join inserted on tab.学号=INSERTED.学号)
begin
--这里面你可以加如些其他修改操作,取决于具体的功能
update tab set col1='num1' from tab join inserted on tab.学号=inserted.学号
end
else
insert tab select * from inserted
GO
Update dbo.PartOpr
Set 字段=值
-- 存在記錄才更新
Where OperationDesc=@OperationDesc
and TopVersion=@TopVersion
and DrawNum=@DrawNum
and TopPartNum=@TopPartNum
and [Version]=@Version
Insert into dbo.PartOpr(字段)
Select
字段
-- 不存在記錄才插入
Where Not exists(select 1 from dbo.PartOpr
Where OperationDesc=@OperationDesc
and TopVersion=@TopVersion
and DrawNum=@DrawNum
and TopPartNum=@TopPartNum
and [Version]=@Version
)