假设我们有一个存储过程从表中选择一些东西:
CREATE PROCEDURE database.getExamples() SELECT * FROM examples;
如何在以后的选择中使用此过程的结果? (我试过了
SELECT * FROM (CALL database.getExamples())
但没有成功。) 我应该在程序中使用SELECT ... INTO outVariable吗?或者我应该使用返回表格的函数吗?
答案 0 :(得分:6)
在这个帖子中改编了问题:Can a stored procedure/function return a table?。 显然,没有临时表的使用是不可能的。
答案 1 :(得分:3)
CREATE TABLE #TempTable
(OID int IDENTITY (1,1),
VAr1 varchar(128) NOT NULL,
VAr2 varchar(128) NOT NULL)
Populate temporary table
INSERT INTO #TempTable(VAr1 , VAr2 )
SELECT * FROM examples
答案 2 :(得分:-2)
在 SQL服务器中,您可以执行SELECT * FROM database.getExamples()
如果你想重新使用'程序'那么,是的,我会把它放到一个表值函数中。
否则你只能在存储过程中选择一个#temporary表。