我需要返回传递给我的存储过程的用户的电子邮件。可以将多个用户传递到存储过程中,以逗号分隔。
我有一个可以使用的分割表值函数
INSERT INTO @stTbl
SELECT value
FROM fn_Split(@UFID , ',')
但是当某些值可能不在表格中时会出现问题,如果用户表中没有用户,我需要从CSV列表中插入用户。
我不想使用光标,所以最好的方法是做这样的事情吗?
答案 0 :(得分:1)
如果您有SQL 2008,请使用MERGE
语句。它可以非常方便。
答案 1 :(得分:1)
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
)