Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/sql-server/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql server 是否可以在存储过程中调用存储过程并将结果放入临时表中,而无需先创建临时表?_Sql Server_Sql Server 2008_Sql Server 2000 - Fatal编程技术网

Sql server 是否可以在存储过程中调用存储过程并将结果放入临时表中,而无需先创建临时表?

Sql server 是否可以在存储过程中调用存储过程并将结果放入临时表中,而无需先创建临时表?,sql-server,sql-server-2008,sql-server-2000,Sql Server,Sql Server 2008,Sql Server 2000,我试图从另一个存储过程中调用一个存储过程,并在不首先创建临时表的情况下将结果放入临时表中。有可能做到这一点,还是有更好的方法?我想使用结果集有多列多行的存储过程或函数。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 spro

我试图从另一个存储过程中调用一个存储过程,并在不首先创建临时表的情况下将结果放入临时表中。有可能做到这一点,还是有更好的方法?我想使用结果集有多列多行的存储过程或函数。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

问了类似的问题。

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

插入到您的表EXEC YourProc


不用说,表的结构应该与SP的输出相匹配?

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

插入到您的表EXEC YourProc



不用说,表的结构应该与SP的输出相匹配?

是否可以在不首先创建临时表的情况下将其添加到临时表中?@RetroCode:No。替代方法是使用可怕的表UDF。@RetroCoder:No.INSERT。。EXEC需要一个预先存在的table@JohnSansom:如果是串联TVF,则它只是一个串联宏。我猜你指的是一个多语句的TVF?@gbn:是的,先生。有人会质疑在问题上下文中使用单个语句存储过程的价值。如果是这样的话,只需将相关代码带到调用过程中,就可以避免试图解决的整个问题。是否可以在不首先创建临时表的情况下将其添加到临时表中?@RetroCode:No。替代方法是使用可怕的表UDF。@RetroCoder:No.INSERT。。EXEC需要一个预先存在的table@JohnSansom:如果是串联TVF,则它只是一个串联宏。我猜你指的是一个多语句的TVF?@gbn:是的,先生。有人会质疑在问题上下文中使用单个语句存储过程的价值。如果是这样的话,那么只要将相关代码带到调用过程中,就可以避免试图解决的整个问题。ThxB但是另一个问题没有提到从一个存储过程调用另一个存储过程。可能是的,这就是我需要的。Thx但另一个问题没有提到从一个存储过程调用另一个存储过程。您好,是的,但我也可以在不首先创建临时表的情况下执行此操作。。。从TSOMETABLE中选择*into ANETEMPTABLE没有什么大不了的,我只想改变我的问题,b/c这就是我要做的。嗨,是的,但我也可以不先创建临时表,就这样做。。。从TSOMETABLE中选择*进入一个新的可清空。没什么大不了的,我只想改变我的问题,b/c这就是我要做的。
  create table #tmp....

  insert  #tmp
  exec sproc_B
CREATE TABLE #tmpTable
(
   COL1 INT,
   COL2 INT   
)

INSERT INTO #tmpTable 
Exec spGetResultset 'Params'