我试图在使用每个 CSV 行作为参数的查询中多次使用 tsql 运行存储过程。
我将如何遍历这个?
干杯
如果这可以通过一组基础操作来实现(如 AnnaandPhadke 所推荐的),那就是要走的路。效率更高。如果没有,您可以使用如下游标:
将 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,包括调用具有多个参数的存储过程。
我建议将 csv 文件导入到表中,然后通过设置循环设置来处理它。您可以修改存储过程以处理基于集合的数据。