sql-server - 查看加入存储过程结果

标签 sql-server sql-server-2008 sql-server-2008-r2

我在应用程序使用的 SQL Server 中有一个现有 View 。我需要加入从存储过程返回的表。存储过程做了很多事情,比如在返回结果之前插入多个#temp 表。

我尝试将存储过程转换为表值函数。但是插入到 TVF 内的临时表会导致编译错误。

有没有其他方法可以做到这一点。

谢谢

最佳答案

您可以将存储过程的结果插入临时表,然后将其加入 View 。

看看下面的例子

SQL Fiddle DEMO

CREATE TABLE TADA(
  ID INT
);
INSERT INTO TADA VALUES (1),(2);

CREATE VIEW vw_TADA
AS
SELECT *
FROM TADA
WHERE ID <= 1;

CREATE PROCEDURE sp_TADA
AS
SELECT *
FROM TADA
WHERE ID > 1;

CREATE TABLE #TADA(
  ID INT
)
INSERT INTO #TADA EXEC sp_TADA

SELECT *
FROM vw_TADA
UNION ALL
SELECT *
FROM #TADA

关于sql-server - 查看加入存储过程结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18103657/

相关文章:

tsql - 在T-SQL中更新没有文本的XML字段

sql - T-SQL 分割字符串

sql-server - 为什么使用条件情况时会得到 int 数据类型?

sql - 如何通过 STWithin 对 SQL Server 几何数据进行分组?

c# - sql server 2008 r2中的当前月份和年份

SQL 2008 FILESTREAM - 如何在更改数据库之前检查数据库是否已启用文件流

sql - 从数据库中过滤唯一记录,同时删除双非空值

java - 使用 Windows 集成身份验证将 JBoss AS 7 数据源连接到 SQL Server

sql-server - 更改 sql server 查询,这样您就不必为数据库指定所有级别

sql-server - 如何让非系统管理员帐户执行 "DBCC CHECKIDENT"?