MSSQL更新数据,某主键存在则更新,不存在则插入

MSSQL更新数据,某主键存在则更新,不存在则插入,第1张

你sqlserver什么版本?

2008以上的话可以采用meger into 来解决,不需要存储过程

Merge Into 被更新的表 p

--从数据源查找编码相同的产品

using 主表 s on p.关联字段=s.关联字段

--如果编码相同,则更新目标表的名称

When Matched Then Update set P.某字段=s.某字段

--如果目标表中不存在,则从数据源插入目标表

When Not Matched Then Insert (字段1,字段2,字段3...) values (字段1,字段2,字段3...)

use databasename

go

if exists(select name from sysobjects where name='tablename')

create table word_table(创建的表的所有属性)

go

--databasename就是你的数据库的名称

--tablename就是你的数据库下面的表的名称

创建测试表

create table test

(id int,

price int)

创建存储过程

create proc p_test

(@id int)

as

declare @count int

select @count=count(*) from test where id=@id

if @count=0

begin

insert into test(id) values (@id)

select @id

end

else 

begin

select @id

end

调用存储过程

declare

@id int

exec p_test 5 --这个5就是比如你要输入的那个id

结果你就自己验证吧,我这没问题了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/bake/11869299.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-19
下一篇 2023-05-19

发表评论

登录后才能评论

评论列表(0条)

保存