从一个表向另外一个表拷贝数据

用户经常需要把Excel的数据导入SQL中,只有这样先导入到一个表中,然后再对这个表进行处理。由于目标表的数据不能清空。数据存在的,需要作更新动作,不存在的,需要做插入动作。

代码

DECLARE   @N   INT   =   1
DECLARE   @ROWS   INT   =  ( SELECT   MAX ( [ ID ] FROM   [ dbo ] . [ Loose04 ] )

WHILE   @N   <=   @ROWS  
BEGIN
    
-- 宣告临时变量,存储每笔记录需要异动的字段信息。
     DECLARE   @ItemCode   NVARCHAR ( 100 ), @ItemGeneralName   NVARCHAR ( 200 ), @Specification   NVARCHAR ( 200 )
    
-- 把异动的字段信息存入变量中。
     SELECT   @ItemCode   =   [ Partno ] , @ItemGeneralName   =   [ Partname ] , @Specification   =   [ Specification ]   FROM   [ dbo ] . [ Loose04 ]   WHERE   [ Id ]   =   @N
    
    
IF   EXISTS  ( SELECT   [ ItemCode ]   FROM   [ dbo ] . [ ItemGeneral ]   WHERE   [ ItemCode ]   =   @ItemCode )
        
-- 如果存在记录,作更新[ItemGeneralName]和[Specification]字段。
         UPDATE   [ dbo ] . [ ItemGeneral ]   SET   [ ItemGeneralName ]   =   @ItemGeneralName , [ Specification ]   =   @Specification   WHERE   [ ItemCode ]   =   @ItemCode
    
ELSE
        
-- 如果不存在,作插入动作。
         INSERT   INTO   [ dbo ] . [ ItemGeneral ]  ( [ ItemCode ] , [ ItemGeneralName ] , [ Specification ] VALUES  ( @ItemCode , @ItemGeneralName , @Specification )
    
SET   @N   =   @N   +   1         
END     

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值