【发布时间】:2013-04-03 06:24:23
【问题描述】:
如何使用不同的参数值集多次运行相同的存储过程,而无需等待第一次执行完成。
例子:
如果我从@sourceId,@containerId 获得了proc sp_loaddata
Execution - 1st: exec sp_loaddatafrom 100001, 36
Execution - 2nd: exec sp_loaddatafrom 100008, 92
Execution - 3rd: exec sp_loaddatafrom 100005, 112
我希望所有人同时运行。
如何在 T-SQL / SSIS / C# 中实现这一点
【问题讨论】:
-
如果可能的话,最好修改存储过程以接受Table-valued parameter - 这样它就可以运行基于集合的查询来产生所有结果 - SQL Server 可以适当地优化这个过程。
-
另外,您应该避免使用
sp_作为存储过程的前缀。它仅供 Microsoft 使用,并且它具有内置的特殊(有时是不受欢迎的)行为(特别是,SQL Server 在搜索当前数据库之前总是会尝试在master中找到此类过程 - 所以如果 MS 添加一个新的与您选择的名称冲突,将使用 MS 名称) -
另外我个人会使用 ORM,除非这个查询有副作用。
-
@Damien_The_Unbeliever 感谢您对 sp_ 的指点,是的,我知道这一点,但我不确定我是如何在我的问题中错过它的 :-)
标签: c# sql-server-2008 tsql ssis