同一對象多條數據同時插入數據庫

執行插入的存儲過程ide

ALTER PROC [dbo].[proc_Products_InfoUpdate]函數

@FminAmount VARCHAR(MAX),spa

     @FmaxAmount VARCHAR(MAX),ci

     @FrateFloating VARCHAR(MAX)字符串

ASstring

INSERT INTO dbo.Rate_Floating(bakProcId,minAmount,maxAmount,rateFloating)it

    SELECT @id,A.istr,B.istr,C.istr  from dbo.fsplit(@FminAmount,',') AS Aio

    INNER JOIN dbo.fsplit(@FmaxAmount,',') AS B ON A.id=B.IDtable

    INNER JOIN dbo.fsplit(@FrateFloating,',') AS C ON A.id=C.IDfunction

 

 

 

上面的 @FminAmount 、@FmaxAmount、@FrateFloating  是參數

以下:@FminAmount 的值爲:張三,李四,王五  @FmaxAmount值爲:男,女,男  以此類推

張三

19

李四

20

王五

19

 

 

dbo.fsplit是一個自定義函數,須要傳入的參數是:須要分割的字符串,分割字符

 

ALTER   function    [dbo].[fsplit](  

 

  @str   varchar(8000)  

  ,@spli   varchar(10)

  )  

  returns   @re   table(id int identity,istr   varchar(8000))  

  as  

  begin  

 

  declare   @i   int,@splen   int  

  select   @splen=len(@spli) ,@i=charindex(@spli,@str)

      while   @i>0  

      begin  

       insert   into   @re   values(left(@str,@i-1) )

           select   @str=substring(@str,@i+@splen,8000)

           ,@i=charindex(@spli,@str)

      end  

  if   @str<>''   insert   into   @re   values(@str)  

  return  

  end

相關文章
相關標籤/搜索