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

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

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

  • 相关阅读:
    EELS
    企业管理软件随想透视>包容,无形思想>有形方便
    定风波
    企业管理软件随想也谈企业框架软件需求
    Delphi数据库开发-前言
    游戏引发的……
    js 当前时间
    代码片段
    阶段总结
    Web界面设计
  • 原文地址:https://www.cnblogs.com/riskyer/p/3249346.html
Copyright © 2011-2022 走看看