子查询将多个数据插入我的数据库时返回多个值错误 [英] SubQuery Returns more than one value error while inserting the Bulk of data into my DB

查看:55
本文介绍了子查询将多个数据插入我的数据库时返回多个值错误的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我想将大量记录插入到我的数据库中.
为此,我创建了SP,但是它只插入了一条记录.当我插入大量记录时,它不起作用,它表明错误子查询返回了多个值. @Dwg_Size_Code,@Disc_Code,@ Dwg_Category_Code读取所有值.

I want to INSERT Bulk of records into my DB.
For that i create SP ,but in that it''s inserting only one record.When i insert Bulk of records,it''s not working it shows the error subquery returns more than one value .Can any one help me looping condition of @Dwg_Size_Code , @Disc_Code ,@Dwg_Category_Code to read all the values.

/*    
  */    
    
ALTER  PROCEDURE lntsp_EMS_PTS_H_Drawing_Schedule    
    
 @XMLItemsDoc xml ,
 @User_Id INT,  
 @error VARCHAR(100)=NULL OUTPUT   
    
    
AS                  
     
BEGIN                  
    
 SET NOCOUNT ON                    
    
 DECLARE @XML_Hndl int,@xPath Varchar(200)      
    
  
 set @xPath='/NewDataSet/Table1'      
    
 exec sp_xml_preparedocument @XML_Hndl OUTPUT,@XMLItemsDoc         
    
    
  select Title,Dwg_Size_Desc,Disc_Short_Desc,Dwg_Category_Desc,Approval_Date,Release_Date,Multi_Disc_Check,Proj_Code,
  Doc_No,SNo,Client_Approval_Date,Client_Release_Date,Weightage    
    
  into #tempUplodItems       
  FROM  OPENXML(@XML_Hndl,@xPath,2)        
  with(Title VARCHAR(100),Dwg_Size_Desc VARCHAR(15),Disc_Short_Desc VARCHAR(15),Dwg_Category_Desc VARCHAR(15),Approval_Date DATETIME,Release_Date DATETIME,Multi_Disc_Check BIT,Proj_Code VARCHAR(15),
  Doc_No VARCHAR(50),SNo INT,Client_Approval_Date DATETIME,Client_Release_Date DATETIME,Weightage FLOAT)      
    
  exec  sp_xml_removedocument   @XML_Hndl
                
     
   
    
   
   DECLARE @Dwg_Size_Code VARCHAR(15)=( SELECT A.Dwg_Size_Code FROM PTS_M_Drawing_Size A, #tempUplodItems X
										WHERE X.Dwg_Size_Desc=A.Dwg_Size_Desc)
   SELECT @Dwg_Size_Code
   
   DECLARE @Disc_Code VARCHAR(15)=(SELECT A.Disc_Code FROM EMS_M_Discipline A,#tempUplodItems X
								   WHERE X.Disc_Short_Desc=A.Disc_Short_Desc)
   SELECT @Disc_Code
   
   DECLARE @Dwg_Category_Code VARCHAR(15)=(SELECT A.Dwg_Category_Code FROM PTS_M_Drawing_Category A,#tempUplodItems X
											WHERE X.Dwg_Category_Desc=A.Dwg_Category_Desc)
   SELECT @Dwg_Category_Code
  
 INSERT INTO dbo.PTS_H_Drawing_Schedule      
 (    
 Title, Dwg_Size_Code, Disc_code, Dwg_Category_Code, Approval_Date, Release_Date, Active_Tag, 
 Created_By, Created_On, Modified_By, Modified_On, Sch_Rev_No, Sch_Rev_Cause, Sch_Rev_Reason, 
 Multi_Disc_Check, Proj_Code, Client_Category, Site_Category, Section_Code, Doc_No, SNo, 
 Sheet_No, DDH_Approval, Approval_Tag, Doc_Description, No_Of_Drawing, Client_Doc_No, Client_Approval_Date, 
 Client_Release_Date, Weightage, Man_Hours, Deactivation_remark
 )    
 SELECT Title,@Dwg_Size_Code,@Disc_Code,@Dwg_Category_Code,Approval_Date,Release_Date,'Y',@User_Id,GETDATE(),@User_Id,GETDATE(),0,0,'Dont Know',Multi_Disc_Check,Proj_Code,
 'DWG000002','DWG000001','SEC000923',Doc_No,SNo,0,0,'Y','Drg/Doc',0,'KAPP - 3&4/51300/2501/DD',Client_Approval_Date,Client_Release_Date,Weightage,5,'No comments'    
 from #tempUplodItems    
 
   
     
 END



预先感谢



Thanks in advance

推荐答案

SP一次插入一组数据.要多次插入,必须每次都定义参数值并调用SP.您是使用C#还是什么?
SP insert one set of data at a time. To insert multiple times you have to define parameter values each time and invoke the SP. You doing this with C# or what?


这篇关于子查询将多个数据插入我的数据库时返回多个值错误的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆