SQL 插入判断语句 5
有三个表,PRODUCT,WAREHOUSE,WAREINPUT各对应产品表、库存表、入库明细表;我现在入库,判断产品表、和库存表不重就插入,重复就更新数据。怎么来实现这...
有三个表,PRODUCT,WAREHOUSE,WAREINPUT各对应产品表、库存表、入库明细表;
我现在入库,判断产品表、和库存表不重就插入,重复就更新数据。怎么来实现这个判断。
我意思是,能否用一条SQL语句来进行判断,例如[case when 重复 update 数据 then insert 数据 end;
不知道这种格式能否实现 展开
我现在入库,判断产品表、和库存表不重就插入,重复就更新数据。怎么来实现这个判断。
我意思是,能否用一条SQL语句来进行判断,例如[case when 重复 update 数据 then insert 数据 end;
不知道这种格式能否实现 展开
2个回答
展开全部
--以产品表为例,有产品id为'新id',判断是update还是insert
--思路1:执行update语句,如果受影响行数为0,就执行insert
update 产品表
set 产品id = '新id'
where 产品id = '新id'
if @@rowcount = 0
begin
insert into 产品表(产品id) values('新id')
end
--思路2:先执行select语句查是否有数据,有就update,没有就insert
declare @row int
select @row = count(*) from 产品表 where 产品id = '新id'
if @row > 0
begin
update 产品表
set 产品id = '新id'
where 产品id = '新id'
end
else
begin
insert into 产品表(产品id) values('新id')
end
----
case 是一个函数,所以case只能使用在DML语句中,而不能用作执行update,insert等语句
--思路1:执行update语句,如果受影响行数为0,就执行insert
update 产品表
set 产品id = '新id'
where 产品id = '新id'
if @@rowcount = 0
begin
insert into 产品表(产品id) values('新id')
end
--思路2:先执行select语句查是否有数据,有就update,没有就insert
declare @row int
select @row = count(*) from 产品表 where 产品id = '新id'
if @row > 0
begin
update 产品表
set 产品id = '新id'
where 产品id = '新id'
end
else
begin
insert into 产品表(产品id) values('新id')
end
----
case 是一个函数,所以case只能使用在DML语句中,而不能用作执行update,insert等语句
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询
广告 您可能关注的内容 |