我正在使用 SQL Server 2005,我想知道如何从 transact-sql 中访问不同的结果集。以下存储过程返回两个结果集,例如,如何从另一个存储过程访问它们?
CREATE PROCEDURE getOrder (@orderId as numeric) AS
BEGIN
select order_address, order_number from order_table where order_id = @orderId
select item, number_of_items, cost from order_line where order_id = @orderId
END
我需要能够单独迭代两个结果集。
编辑:只是为了澄清问题,我想测试存储过程。我有一组从 VB.NET 客户端使用的存储过程,它返回多个结果集。这些不会更改为表值函数,事实上我根本无法更改程序。改变程序不是一个选择。
过程返回的结果集的数据类型或列数不同。
简短的回答是:你做不到。
从 T-SQL 中,如果不按照其他人的建议更改存储过程,就无法访问嵌套存储过程调用的多个结果。
为了完整起见,如果该过程返回单个结果,您可以使用以下语法将其插入临时表或表变量中:
INSERT INTO #Table (...columns...)
EXEC MySproc ...parameters...
您可以对返回多个结果的过程使用相同的语法,但它只会处理第一个结果,其余结果将被丢弃。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)