我不了解存储过程中T-SQL select语句的本质。我来自Oracle方面,这对我来说很明确。
希望这个样本能够表明我的误解!
我有这个存储过程:
create procedure demo_1
as
begin
select count(1) from sys.tables;
end;
现在我可以通过管理工作室执行此程序。
exec demo_1
我会在管理工作室内取得好成绩。这在计算机之前看起来很好,但是当我通过第二个存储过程调用这个存储过程时,我无法对此结果做任何事情。
我不明白这背后的想法。将未定义的结果打印到控制台,而无法在TSQL世界中工作。
这样做的背景是:我需要一个调用内部sp_fkeys
过程的存储过程。经过几个小时的研究后,我找不到从sp_fkeys
获取信息的直接方法,并在TSQL中使用结果。
答案 0 :(得分:2)
如果要在另一个proc中使用存储过程的结果集,请创建一个临时表,其中包含proc在调用proc中返回的相同列。然后像这样插入:
insert #test
exec myproc