且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

如何为CSV的每个值运行SQL Server存储过程查询

更新时间:2023-02-13 15:27:41

使用此链接:如何将CSV数据拆分并插入到新表中语句?,有一个函数可用于将csv解析为表,我在下面的代码中使用了它。尝试以下操作

Using this link: how to split and insert CSV data into a new table in single statement?, there is a function you can use to parse csv to to table and I have used it in the code below. Try the following

Insert Into MessagingMessageReceipient
  (
   MessageId,
   ReceipientId,
   ReceipientType
  )
  SELECT
   @pEMailId,
   csv.Part,   -- each @pReceiver
   1
  FROM 
     dbo.inline_split_me(',',@pReceivers) csv

该函数复制到下面

CREATE FUNCTION inline_split_me (@SplitOn char(1),@String varchar(7998))
RETURNS TABLE AS
RETURN (WITH SplitSting AS
           (SELECT
                LEFT(@String,CHARINDEX(@SplitOn,@String)-1) AS Part
                    ,RIGHT(@String,LEN(@String)-CHARINDEX(@SplitOn,@String)) AS Remainder
                WHERE @String IS NOT NULL AND CHARINDEX(@SplitOn,@String)>0
            UNION ALL
            SELECT
                LEFT(Remainder,CHARINDEX(@SplitOn,Remainder)-1)
                    ,RIGHT(Remainder,LEN(Remainder)-CHARINDEX(@SplitOn,Remainder))
                FROM SplitSting
                WHERE Remainder IS NOT NULL AND CHARINDEX(@SplitOn,Remainder)>0
            UNION ALL
            SELECT
                Remainder,null
                FROM SplitSting
                WHERE Remainder IS NOT NULL AND CHARINDEX(@SplitOn,Remainder)=0
           )
           SELECT Part FROM SplitSting
       )