2012-10-05 71 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的可以修改你的存储过程来处理设置基于数据处理它。