SQL Server 2008批量插入数据时报错解决

2014-11-24 10:10:55 · 作者: · 浏览: 0
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