是否可以在不等待返回的情况下执行嵌套存储过程?

时间:2014-02-24 16:10:19

标签: sql sql-server stored-procedures asynchronous sql-server-2012

我需要创建嵌套的存储过程。在下面的事情中。

Create proc MyVoidProc 
as
Begin
    Waitfor Delay '00:00:05'
    Print 'This has been executed'
End

GO;

Create Proc TestNestedSP
as
Begin
    Select * From sys.tables --Some select statement that needs to be returned

    Exec MyVoidProc  --This does not return anything.
End

是否可以从TestNestedSP返回select语句,而无需等待MyVoidProc执行。 MyVoidProc不返回任何内容,但需要在TestNestedSP结束时执行,因为它需要从调用它的过程中捕获元素。 MyVoidProc将花费不同的时间来执行,因此我不等待等待它。只需将重要信息返回给用户,并在用户不知情的情况下完成处理过程。

2 个答案:

答案 0 :(得分:1)

简答:否

但你有其他选择,已经提到过,使用一份工作: Async Stored Procedure Call in T-SQL

其他选择: - CLR存储过程,触发一个线程 - 直接从代码运行,而不是SQL

答案 1 :(得分:0)

您可以在sql server management studio中使用Resource Governor选项。 这可以管理处理器和内存。 因此,您可以将处理器分为多个组,并为每个组添加过程。因此,不在同一处理器核心分类上的过程可以并行运行。