2

我正在创建一个临时表,它是存储过程结果集的结果。现在我正在使用该create table语句,然后是insert into....exec.

它完成了工作,但我很好奇是否还有其他方法可以解决这个问题?我希望可以运行select into, 存储过程的结果集充当 select 语句的角色,这样我就不必事先编写 create 语句(这样如果存储过程的列发生变化,就不会需要任何修改。)

如果有其他方法可以更好地满足我的需求,我很想听听它们。非常感谢。

4

2 回答 2

1

一招:

SELECT * FROM OPENQUERY(ThisServerName, 'EXEC myDB.dbo.myStoredproc') 

存储过程不是表或视图,因此您不能期望像表或视图那样的记录集。您对“如果存储的 proc 列发生更改”的评论忽略了这个事实:它不应该改变

于 2010-03-17T20:13:28.663 回答
1

有两种方法:表变量CTE。每个都有好处,你的场景往往让我相信如果源数据很大,临时表是最好的选择。如果不是,我会倾向于 CTE。

于 2010-03-17T19:57:15.333 回答