是否可以在sproc中调用sproc并将结果放在#temp表中,而无需先创建临时表?

时间:2012-01-16 15:10:44

标签: sql-server sql-server-2008 sql-server-2000

我正在尝试从另一个sproc中调用sproc并将结果放在临时表中而不先创建临时表。有可能做到这一点,还是有更好的方法?我想使用sprocB或functionB,其结果集有多列和多行。 THX。

sproc A  
..
begin
  -- create table #tmp.... -- Try not to create the #tmp table first if possible
  exec sproc_B ... put results from sproc_B in #tmp

end

sproc B
..
@id int
..
begin
  select table from aTable where id = @id
end

提出了类似的问题here

3 个答案:

答案 0 :(得分:4)

  create table #tmp....

  insert  #tmp
  exec sproc_B

答案 1 :(得分:2)

CREATE TABLE #tmpTable
(
   COL1 INT,
   COL2 INT   
)

INSERT INTO #tmpTable 
Exec spGetResultset 'Params'

答案 2 :(得分:1)

是的,但您必须在使用之前创建表。语法为:

INSERT INTO YourTable EXEC YourProc

无需说,该表的结构应与SP的输出相匹配吗?