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

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

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

  • 相关阅读:
    C语言I作业12—学期总结
    C语言寒假大作战01
    C语言I作业12—学期总结
    C语言I博客作业11
    C语言I作业9
    C语言I博客作业08
    C语言I博客作业07
    C语言I博客作业05
    C语言I博客作业04
    C语言I博客作业03
  • 原文地址:https://www.cnblogs.com/riskyer/p/3249346.html
Copyright © 2011-2022 走看看