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
可是让人意想不到的是既然解决了问题,但是为什么按照上面批量插入就不行,下面就可以呢?
原因目前还没有找到。。。
 
                    
                 
                
            
         
         
 浙公网安备 33010602011771号
浙公网安备 33010602011771号