Thursday, 26 February 2015

Passing Comma Separated Values to Data Base using XML



DECLARE @strString VARCHAR(100);
SET @strString ='UID1001,UID1002,UID1003';

DECLARE @x XML;
SELECT @x = CAST('<A>'+ REPLACE(@strString,',','</A><A>')+ '</A>' AS XML);
SELECT @x; -- How the XML looks like


SELECT * from UserTableName u
       join
              (SELECT t.value('.', 'nvarchar(8)') AS user_id
                      FROM @x.nodes('/A') AS x(t)) Ids on u.USER_NAME=Ids.user_id

SELECT b.value('.', 'nvarchar(8)') AS user_id
                      FROM @x.nodes('/A') AS test(b)

It might be faster if you pass the XML directly as a parameter instead of comma separated values.

No comments:

Post a Comment