可以将存储过程用作参数

时间:2013-04-24 16:49:49

标签: sql-server stored-procedures parameters insert

INSERT INTO TEMP_TABLE (aNumber, aDate) VALUES ((aSproc param1, param2) , myDate)

我需要传递一个带参数的存储过程作为insert语句的参数。这可能吗?

1 个答案:

答案 0 :(得分:1)

这取决于存储过程返回的内容。存储过程返回由SP中发出的最后一个选择产生的表。因此,如果您的SP以SELECT NULL结尾,那么您的SP将返回NULL,然后您的插入将返回NULL。对于你必须工作的东西,你必须确保存储过程只返回一个值,即一行一列的表。

之所以这样,是因为您的insert期望单个值成为其value子句的一部分,并且您可能返回多行和多列。您可以通过使用SELECT 1结束SP来测试这一点,这会将int返回到您的插入,然后它将具有一个值类型,它可以理解为其value子句的一部分。

同时发布您的SP将有助于我们调试它。