[英]Temporary table in stored procedure
我有一个执行各种动态sql语句的存储过程。 实际上,将使用各种参数从SSIS触发此存储过程。 因此将有很多并行执行。
该存储过程在执行期间使用临时表。 我使用Select .. into
语句手动创建表,并将它们放在最后。
在并行执行期间,由于执行2试图创建或使用与执行1相同的临时表,因此该过程最终会出错。
我试图使用表变量来解决这个问题。 但是,这在动态SQL中不起作用。 ( 如何在动态SQL语句中使用表变量? )
我尝试使用本地临时表解决此问题。 但是,使用本地临时表的SSIS和存储过程并不是很好的结合。 到目前为止,我还没有找到一个好的工作解决方案。.http://consultingblogs.emc.com/jamiethomson/archive/2006/12/20/SSIS_3A00_-Using-stored-procedures-inside-an-OLE-DB-Source- component.aspx
我有一个关于如何使用GUID名称创建临时表的想法。 然后使用它,以便它在存储过程执行中是唯一的。 但是,这确实会使我的动态SQL代码难以维护。
有人看到其他选项吗?还是我把事情复杂化了? 有没有更可行的解决方案?
您可以将临时表创建为
创建表#tmp_execute(id int,名称varchar(50),.......)
然后,执行动态查询
从tbl_Sample插入#tmp_execute select ....
如果需要执行动态列,则可以在条件语句中使用'alter table #tmp_execute add your_column int'。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.