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++从内存到流
    MapServer的安装和使用
    程序中写个日志
    COM接口映射表
    webgis开源资料
    SQL基础>过滤和排序
    开源的webgis框架总结(转)
    mapserver安装相关
    Python入门,以及简单爬取网页文本内容
  • 原文地址:https://www.cnblogs.com/kevinGao/p/3264246.html
Copyright © 2011-2022 走看看