【发布时间】:2014-03-27 17:22:38
【问题描述】:
首先,有没有可能?
我有一个如下所示的存储过程:
SELECT this FROM table WHERE this IN (SELECT that FROM another_table WHERE that = @Param)
我想用另一个存储过程替换(SELECT that FROM another_table WHERE that = @Param)
我很难找到正确的语法来使它工作。我试过了:
SELECT this FROM table WHERE this IN (EXEC new_stored_procedure @Param)
但这不起作用。有人知道这样做的正确语法吗?
感谢您的帮助
【问题讨论】:
-
不,这是不可能的。您必须先执行存储过程,并将结果存储到临时表(或表变量)中,然后在
IN子句中使用SELECT .. FROM ... -
您是否使用 DML 进行 SP?
-
不幸的是,确实如此。否则,我会使用一个函数。
标签: sql sql-server sql-server-2008 tsql stored-procedures