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

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

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

  • 相关阅读:
    hadoop 异常及处理总结-02(小马哥精品)
    Linux环境变量(小马哥推荐)
    Apache Tomcat 8.5 安全配置与高并发优化
    深入理解分布式系统中的缓存架构(上)
    Redis的n种妙用,不仅仅是缓存
    springBoot整合ecache缓存
    Spark Streaming实时处理应用
    Spark 实践
    spark性能调优
    Spark调优
  • 原文地址:https://www.cnblogs.com/kevinGao/p/3264246.html
Copyright © 2011-2022 走看看