我有一个存储过程SP1,它使用SELECT语句返回两个表T1和T2。我想在另一个存储过程SP2中对T2执行一些操作。有人可以指导我如何做到这一点?从SQL Server获取最后一个表存储过程
2
A
回答
2
选项1
变化SP1保存T2到一个表中,除了使用SELECT返回它。然后使用该表作为SP2的输入。
选项2
如果你无法改变SP1,你可以捕捉的存储过程在一个表中的输出。在StackOverflow上查看如何使用OPENROWSET或通过预先定义临时表来执行此问题:How to SELECT * INTO [temp table] FROM [stored procedure]。
如果T1和T2没有相同的定义,则此选项将不起作用。如果他们有相同的定义,你可以导入这两个结果集为一个表如下:
--create a temporary table with the same definition as T1 and T2
CREATE TABLE #temp (
Col1 SOME DATATYPE,
Col2 SOME DATATYPE
);
--fill your temp table with the result sets of T1 and T2
INSERT INTO #temp
EXEC [dbo].[SP1];
但你必须处理T1-T2 Plus的表,而不是T2。
所以看来选项1是你最好的选择。
+1
其实我试图用选项2来实现它。但是谢谢你告诉选项1.非常感谢。 –
+0
不客气!我可以想象你想要选择2路由,必须说我有点惊讶,似乎没有明显的方式来处理来自SQL Server中的SP的多个结果集。 – Josien
相关问题
- 1. SQL Server存储过程,从多个表
- 2. 从另一个存储过程调用SQL Server存储过程
- 3. 使用一个存储过程从表中获取N个最后一行
- 4. SQL Server存储过程从表中获取行
- 5. 从SQL Server存储过程获取单一响应与C#
- 6. 存储过程从SQL Server中的存储过程本身获取值
- 7. 从存储过程获取SQL
- 8. 从另一个存储过程的SQL Server调用存储过程
- 9. SQL Server触发器 - 从第一个插入存储过程获取变量?
- 10. 从SQL Server存储过程获取值输出到变量
- 11. 从SQL Server存储过程获取结果
- 12. 的SQL Server 2016 SSIS从存储过程中获取光标
- 13. 我需要从SQL Server存储过程中获取列名
- 14. SQL Server存储过程从刚刚插入的行获取值
- 15. 从SQL Server 2008中的存储过程中获取XML
- 16. 从SQL Server获取字段存储过程
- 17. 从SQL Server存储过程执行Oracle存储过程
- 18. 在SQL Server的每一行执行一个存储过程表
- 19. SQL Server存储过程在多个表中插入一个
- 20. 从SQL Server存储过程获得空结果存储过程,返回XML
- 21. SQL Server 2012动态SQL - 存储过程 - 获取语法错误
- 22. 存储过程SQL Server
- 23. Sql server存储过程
- 24. SQL Server存储过程sp_executesql
- 25. sql server 2000存储过程
- 26. SQL Server 2005存储过程
- 27. 与SQL Server存储过程
- 28. SQL Server的存储过程
- 29. SQL Server存储过程
- 30. SQL Server存储过程
我不认为你可以用SP做到这一点,你需要的是一个表值函数。 – yogi
没有办法从TSQL中的存储过程访问第二个结果集。 如果两个结果集都是联合兼容的,那么你可以'INSERT INTO @T EXEC YourProc',但是这会插入**两个**结果集。 –