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
语句。它可以非常方便。