读书人

求1Sql触发器,向表里插入数据时判断该

发布时间: 2012-12-29 10:28:09 作者: rapoo

求一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
)

[解决办法]
引用:
引用:
SQL code?12345678910111213141516171819202122232425262728291、--处理的触发器示例create trigger tr_insert on 表instead of insert --注意触发器的类型as--更新已经存在的主键update 表 set name=b.name,sex=b.sexfr……
你表里面有自增列,然后被显示插入值造成报错。SET identity_insert ON,然后再执行

读书人网 >SQL Server

热点推荐