zoukankan      html  css  js  c++  java
  • SQL Server 2008 批量插入数据时报错

            前几天在SQL Server 2008同步产品数据时,总是提示二进制文本被截断的错误,但是经过检查发现数据都符合格式要求。

    百思不得其解,单独插入一条条数据则可以插入,但是批量导入则报错。

            批量导入代码示例如下:

           SELECT * into #product from 一系列的表关联

            where 若干条件

            ...

            insert into t_product

            select * from #product

            最后无奈之下改为用游标循环插入:

    ---使用游标测试插入过程
     DECLARE Prod_Cursor Cursor Local For
     SELECT ProdCode_SAP FROM #Product
     
     OPEN Prod_Cursor
     DECLARE @ProdCode_SAP nvarchar(20) 
     FETCH NEXT FROM Prod_Cursor INTO @ProdCode_SAP
     
     WHILE @@FETCH_STATUS=0
     BEGIN
      
      BEGIN TRY
      INSERT INTO t_Product(。。。)
        SELECT 。。。 FROM #Product 
        where ProdCode_SAP=@ProdCode_SAP
       END TRY
       BEGIN CATCH
        print @ProdCode_SAP
       END CATCH
     

     IF EXISTS(SELECT 1 FROM  t_Identity WHERE TableName='t_Product')
      UPDATE  t_Identity SET CurrNo=@ProdID WHERE TableName='t_Product'
     else 
      。。。。

      FETCH NEXT FROM Prod_Cursor INTO @ProdCode_SAP
      
     END
     
     CLOSE Prod_Cursor
     DEALLOCATE Prod_Cursor
     
     drop table #Product

    可是让人意想不到的是既然解决了问题,但是为什么按照上面批量插入就不行,下面就可以呢?

    原因目前还没有找到。。。

  • 相关阅读:
    TPLINK GPL code 简要分析
    Openwrt 初探
    物联网-手机远程控制家里的摄像头(3)
    物联网-手机远程控制家里的摄像头(2)
    lumia 520无法开机
    树莓派无法驱动移动硬盘
    Cannot Change Opencv Webcam Setting
    IIC协议理解(转)
    应用调试(六)记录回放输入子系统
    应用调试(五)侵入式SWI
  • 原文地址:https://www.cnblogs.com/kevinGao/p/3264246.html
Copyright © 2011-2022 走看看