sql-server - 从 SQL Server 存储过程获取最后一个表

标签 sql-server

我有一个存储过程 SP1,它使用 SELECT 语句返回两个表 T1 和 T2。我想在另一个存储过程 SP2 中对 T2 执行一些操作。有人可以指导我该怎么做吗?

最佳答案

选项 1

除了使用 SELECT 返回 T2 之外,还更改 SP1 以将 T2 保存到表中。然后使用该表作为 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-plus-T2 表而不是 T2。

看来选项 1 是您最好的选择。

关于sql-server - 从 SQL Server 存储过程获取最后一个表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12067934/

相关文章:

sql - 打开和读取文本文件的存储过程

c# - SQL - 更好的两个查询而不是一个大查询

sql-server - 仅当未提供修改日期时才触发 UPDATE 修改日期

sql-server - 在我的 sql 数据库中存储自定义报告设置的推荐模式/数据库设计是什么?

sql - 如何将现有 GUID 插入脚本中的 Oracle RAW(16) 字段

sql - 将数据从 SQL Server 表复制到同一个表

SQL优化问题

Sql 对象拼写检查器

sql-server - 如何获取 MS SQL Server 2005 的登录历史记录

sql-server - 检索 SQL Server 全文索引术语