多个表的数据转移到另外一个表中的存储过程

use TMS_DEV
if exists(select * from sysobjects where id=OBJECT_ID(N'USP_DataLoad_SubClient')
and OBJECTPROPERTY(id,N'IsProcedure')=1)
drop procedure USP_DataLoad_SubClient
go

create procedure USP_DataLoad_SubClient
@User int
as
declare @SourceSystemId int
select @SourceSystemId=SourceSystemId from T_CSC_SourceSystem where SourceSystemName='Hyperion'
begin

	update T_CSC_SubClient set
	UpdatedAt=getutcdate(),
	UpdatedBy=@User,
	SubClientName=TTBC.SUBCLIENT_NAME
	from(
	select SUBCLIENT_CODE,SUBCLIENT_NAME from T_TMS_Batch_Client
	) as TTBC where T_CSC_SubClient.SubClientCode=TTBC.SUBCLIENT_CODE and SourceSystemId=@SourceSystemId

	
	insert into T_CSC_SubClient(
		ClientId,
		SourceSystemId,
		SubClientCode,
		SubClientName,
		CreatedAt,
		CreatedBy,
		UpdatedAt,
		UpdatedBy
	)select
		null,
		@SourceSystemId,
		TTBC.SUBCLIENT_CODE,
		TTBC.SUBCLIENT_NAME,
		getutcdate(),
		@User,
		getutcdate(),
		@User
		from T_TMS_Batch_Client TTBC where TTBC.SUBCLIENT_CODE not in
		(select distinct SubClientCode from T_CSC_SubClient a where a.SourceSystemId=@SourceSystemId)
end
go

这里其中通过取其中一个表的一列或者几列,不用游标,纯属的原生sql语句。

转载于:https://www.cnblogs.com/qianlovebeijixiong/p/3240379.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值