Nat*_*han 9 sql t-sql sql-server sql-server-2008
SELECT Val from storedp_Value 在SQL Server Management Studio的查询编辑器中,这可能吗?
UPDATE
我试图创建一个临时表但它似乎没有用,因此我在这里问.
CREATE TABLE #Result
(
batchno_seq_no int
)
INSERT #Result EXEC storedp_UPDATEBATCH
SELECT * from #Result
DROP TABLE #Result
RETURN
Run Code Online (Sandbox Code Playgroud)
存储过程UpdateBatch
delete from batchno_seq;
insert into batchno_seq default values;
select @batchno_seq= batchno_seq_no from batchno_seq
RETURN @batchno_seq
Run Code Online (Sandbox Code Playgroud)
我做错了什么,如何从查询窗口调用它?
更新#2
好的,我很感激这方面的帮助,方向或任何事情 - 这就是我想要实现的目标.
select batchno_seq from (delete from batchno_seq;insert into batchno_seq default values;
select * from batchno_seq) BATCHNO
INTO TEMP_DW_EKSTICKER_CLASSIC
Run Code Online (Sandbox Code Playgroud)
这是更大的select语句的一部分.任何帮助将非常感激.基本上,当我们为Oracle迁移时,这个SQL就被打破了.
Gor*_*off 13
好吧,不.要从存储过程中进行选择,您可以执行以下操作:
declare @t table (
-- columns that are returned here
);
insert into @t(<column list here>)
exec('storedp_Value');
Run Code Online (Sandbox Code Playgroud)
如果以这种方式使用存储过程的结果并编写存储过程,请认真考虑将代码更改为视图或用户定义的函数.在许多情况下,您可以使用更简单,更适合的构造替换此类代码.
这在sql server中是不可能的,你可以将结果插入临时表然后进一步查询
CREATE TABLE #temp ( /* columns */ )
INSERT INTO #temp ( /* columns */ )
EXEC sp_MyStoredProc
SELECT * FROM #temp
WHERE 1=1
DROP TABLE #temp
Run Code Online (Sandbox Code Playgroud)
或者您可以使用,OPENQUERY但这需要设置链接服务器,SQL是
SELECT * FROM (ThisServer, 'Database.Schema.ProcedureName <params>')
Run Code Online (Sandbox Code Playgroud)