SQL Server 2005如何迭代没有光标的CSV或表?

问题描述:

我需要返回传递给我的存储过程的用户的电子邮件。多个用户可能会被传入存储过程,并以逗号分隔。SQL Server 2005如何迭代没有光标的CSV或表?

我有一个分表值函数,我可以使用

INSERT INTO @stTbl 
    SELECT value 
    FROM fn_Split(@UFID , ',') 

但是当某些值可能不表,我会需要从CSV上市插入用户如果不存在,在出现问题用户表。

我不想使用游标,所以最好的办法是做这样的事情?

INSERT INTO @stTbl (value) 
SELECT value 
FROM fn_Split(@UFID , ',') AS F 
WHERE NOT EXISTS (
    SELECT NULL 
    FROM @stTbl AS T 
    WHERE T.value = F.value 
) 

如果您有SQL 2008,请使用MERGE语句。它可以非常方便。