我需要在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”查询时)。
答案 0 :(得分:1)
使用#TMP
SELECT genTbl_col1, genTblcol2
INTO #TMP FROM genTbl;
它仅存在于当前会话中。您也可以使用## TMP进行所有会话。