从存储过程插入表选择结果集但列数不相同

Dav*_*ave 3 sql t-sql plsql sql-server-2005

我需要一些当然不起作用的东西.

insert into Table1
(
  Id,
  Value
)
select Id, value from
(

  exec MySPReturning10Columns

)
Run Code Online (Sandbox Code Playgroud)

我想从返回的结果集中填充Table1 MySPReturning10Columns.这里SP返回10列,表只有2列.

只要SP中的表和结果集具有相同的列数,以下方式就可以工作,但在我的情况下它们不相同.

INSERT INTO TableWith2Columns 
  EXEC usp_MySPReturning2Columns;
Run Code Online (Sandbox Code Playgroud)

另外,我想避免添加"." 作为链接服务器,无论如何只是为了使openquery和openrowset工作.

有没有办法不在临时表中定义表结构(所有具有数据类型和长度的列)?像CTE这样的东西.

And*_*mar 7

您可以使用临时表作为中间人:

insert into #TempTable exec MySP
insert into Table1 (id, value) select id, value from #TempTable
Run Code Online (Sandbox Code Playgroud)