2017-09-15 90 views
1

我需要建立在SQL Server,它實際上並不存在,而是設置一個SQL查詢的結果是「鬼」表。僞代碼如下:如何根據其他表在SQL Server中創建「Ghost Table」?

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

我想你所談論的臨時表,最簡單的方法是:SELECT table1.col AS genTbl_col1, table2.col AS genTbl_col2 INTO #GHOST_TABLE FROM表1 INNER JOIN表2 ON(...) – LONG

+4

我認爲你正在尋找對於['view'](https://docs.microsoft.com/en-us/sql/t-sql/statements/create-view-transact-sql) – SqlZim

+0

考查'Views' – pinkfloydx33

回答

0

使用#TMP

SELECT genTbl_col1, genTblcol2 
INTO #TMP FROM genTbl; 

它只存在於當前會話。您也可以使用## TMP進行所有會話。