存储返回多个表的存储过程的结果

时间:2014-07-09 11:40:15

标签: sql sql-server sql-server-2008 stored-procedures

我有一个存储dbo.usp_GetCustInfo '1','Some Parameter',它返回两个表

作为

表1

DocID    DocName

表2

CustID     CustName

我想将它存储到临时表中。我可以使用任何语句Insert intoSelect * Into

正如此回答Insert results of a stored procedure into a temporary table 所指出的那样,只有在返回一个表

时才有效

1 个答案:

答案 0 :(得分:-1)

这听起来像是存储过程中OUTPUT参数的作业。

http://technet.microsoft.com/en-us/library/ms187004(v=sql.105).aspx

我不知道在T-SQL中处理多个结果集的任何可能性,只要我知道它严格设计为只处理单一结果 - 并且因为你不能编辑存储过程本身,你应该使用您用于处理SQL信息的语言中的结果。我可以为ColdFusion提供一个示例,我想大多数其他语言都有类似的方法。

<!--- This calls the procedure --->
<cfstoredproc procedure="usp_GetCustInfo" datasource="your_ds">
  <cfprocparam cfsqltype="cf_sql_varchar" value="1" />
  <cfprocparam cfsqltype="cf_sql_varchar" value="Some Parameter" />
  <cfprocresult name="local.table_1" resultset=1 />
  <cfprocresult name="local.table_2" resultset=2 />
</cfstoredproc>

<cfdump var=#local.table_1# title="Result Table 1">
<cfdump var=#local.table_2# title="Result Table 2">