I have a Stored Proc that inserts record but taking a comma separated string and parsing it and adding individual records
Create PROCEDURE [dbo].[Save_List_PMIDS]
@MemberID INT= 88888,
@PMIDList VARCHAR(MAX)= '12345,56789,67432'
AS
BEGIN
SELECT Split.a.value('.', 'VARCHAR(100)') AS PMID
INTO #pmids
FROM ( SELECT CAST ('<M>' + REPLACE(@PMIDList, ',', '</M><M>') + '</M>' AS XML) AS String
) AS A
CROSS APPLY String.nodes('/M') AS Split ( a )
--DELETE FROM [dbo].[Publication.Person.Include]
--WHERE (MemberID = @MemberID) AND PMID IN (@PMIDList);
INSERT INTO [dbo].[Publication.Person.Include]
( PersonID, PMID, MemberID )
SELECT @MemberID, PMID, @MemberID
FROM #pmids
DROP TABLE #pmids
My problem is with the delete statement. How can I convert the PMIDList string to numbers to use in the IN list so I don't add duplicates?
So it would look like
DELETE FROM [dbo].[Publication.Person.Include]
WHERE (MemberID = @MemberID) AND PMID IN (12345,56789,67432);
Thanks in advance