2013-11-25 117 views
0

我被問及如何對視圖進行反向工程,以便確定在sql查詢中使用哪些列和表來生成視圖。所以說視圖1是從以下10個表格和43列構建的。這甚至可能在SQL Server 2005中?逆向工程a視圖

回答

4

使用sp_helptext

exec sp_helptext 'your_view' 

編輯

你要的是找出哪些依賴你的看法了。你可以使用sp_depends來做到這一點,但它只會讓你獲得表依賴關係而不是列。

exec sp_depends 'your_view' 

爲了找出你可能要編寫某種SQL解析器來提取您恢復與sp_helptext的創建視圖語句中使用的列的列。

你可以嘗試使用ReGex來提取你想要的信息,或者如果你想要一個更大的發燒友槍,你可以試試Irony它有一個內置的Sql Lexic。

+2

是的,請參閱說明書中的「視圖」? – tucaz

+0

是pff :)錯過了,對不起,我習慣於將它用於存儲過程:] – nrathaus

+0

感謝您的回覆。我意識到這一點。但我正在尋找一些sql去除創建視圖語句中的表和列。這些視圖具有數千行代碼和CTE。 –

1

是的,在SSMS中選擇您的database - >views - >右鍵單擊 - >script as CREATE

如果您想解碼另一個數據庫上的視圖,則無法訪問(例如接口) - 這是不可能的。

+0

感謝您的回覆。我意識到這一點。但我正在尋找一些sql去除創建視圖語句中的表和列。這些視圖具有數千行代碼和CTE。 –