如何基于其他表在SQL Server中创建“Ghost表”?

时间:2017-09-15 12:17:27

标签: sql-server

我需要在SQL Server中创建一个“ghost”表,它实际上并不存在,但它是SQL Query的结果集。伪代码如下:

SELECT genTbl_col1, genTblcol2 
FROM genTbl;

然而,“genTbl”实际上是:

SELECT table1.col AS genTbl_col1, 
    table2.col AS genTbl_col2
FROM table1 INNER JOIN table2 ON (...)

换句话说,我需要每次在尝试从“genTbl”中选择的服务器上运行查询时,它只需从查询中创建一个结果集并将其视为真实表。

情况是我有一个在数据库上运行查询的软件。我需要修改它,但我不能改变软件本身,所以我需要欺骗它以为它实际上可以查询“genTbl”,当它实际上不存在但只是对其他表的查询。

为了澄清,查询必须是一种程序,默认情况下在数据库中可用(即每次有“genTbl”查询时)。

1 个答案:

答案 0 :(得分:1)

使用#TMP

SELECT genTbl_col1, genTblcol2 
INTO #TMP FROM genTbl;

它仅存在于当前会话中。您也可以使用## TMP进行所有会话。