2012-04-02 61 views
2

我需要返回傳遞給我的存儲過程的用戶的電子郵件。多個用戶可能會被傳入存儲過程,並以逗號分隔。SQL Server 2005如何迭代沒有光標的CSV或表?

我有一個分表值函數,我可以使用

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

但是當某些值可能不表,我會需要從CSV上市插入用戶如果不存在,在出現問題用戶表。

我不想使用遊標,所以最好的辦法是做這樣的事情?

回答

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 
) 
1

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