sql 批量操作(存在的更新,不存在的插入)

update A SET A.NAME=
(
	select B.NAME from #tmpTB2 B where B.ID=A.ID
)
FROM #tmpTB3 A

insert into #tmpTB3 
select * from #tmpTB2 B
where B.ID not in(select ID from #tmpTB3)
以上为:存在的更新,不存在的插入


以下为 批量更新某个标识字段:

UPDATE A SET A.Provider_IsActive=
(
	SELECT CASE WHEN
	(
		SELECT 1 FROM
		(
			SELECT DISTINCT Provider_System_Provider_Id 
			FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME2] P 
			WHERE p.data_source = 'ika' and soft_delete_flag = 'n' and Provider_Active_Flag = 'y'
		) B WHERE B.Provider_System_Provider_Id = left(A.External_provider_id,7)
	) IS NULL THEN 0 ELSE 1 END AS Provider_IsActive
)
FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME1] A

-- SELECT COUNT(*) FROM YOUR_DB_NAME.[dbo].[YOUR_TABLE_NAME1] A WHERE Provider_IsActive=0



  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值