2012-10-05 59 views

回答

2

如果這可以通過set base操作來實現(如AnnandPhadke所推薦的),那就是要走的路。效率更高。如果沒有,你可以使用光標如下:

導入CSV到表ImportedCSV

DECLARE @sSQL AS VARCHAR(5000) 
DECLARE @sItemsFromCSV 

DECLARE sql_cursor CURSOR 
    FOR SELECT ItemsFromCSV FROM ImportedCSV 
OPEN sql_cursor 

FETCH NEXT FROM sql_cursor 
INTO @ItemsFromCSV -- Multiple variables for multiple CSV columns will be required 

WHILE @@FETCH_STATUS = 0 
BEGIN 

@sSQL = 'EXEC USP_MyProc ' + @ItemsFromCSV -- AND OTHER Parameters 
EXECUTE sp_executesql @sSQL 

FETCH NEXT FROM sql_cursor 
END 
CLOSE sql_cursor; 
DEALLOCATE sql_cursor; 

這將允許在CSV自定義SQL的每行的執行,包括調用帶有多個參數的存儲過程。

1

我建議CSV文件導入到一個表,然後通過設置明智insted的looping.You的可以修改你的存儲過程來處理設置基於數據處理它。