在Microsoft SQL Server 2008 R2,比方說我的數據庫有以下幾種觀點:SQL:如何查看視圖列到表列的映射?
create view [dbo].[MyView]
(
[MyColumnA]
)
AS
(SELECT MyColumnB FROM MyTable)
假設現在我只知道有一種說法叫做MyView的,有一個叫MyColumnA列,但我不知道知道它映射到MyTable.ColumnB。什麼是確定哪個表和列MyView.ColumnA映射到的最簡單/最快捷的方式?有沒有可以告訴我這個問題的查詢?例如:
SELECT TABLE_NAME, TABLE_COLUMN_NAME
FROM INFORMATION_SCHEMA.VIEW_MAPPINGS
WHERE VIEW_NAME = 'MyView' AND VIEW_COLUMN_NAME = 'MyColumnA'
此查詢將返回[MyTable,MyColumnB]。
目前我必須在SSMS對象資源管理器中找到視圖,右鍵單擊它並生成創建腳本,然後搜索視圖列的名稱。然後我注意到它在視圖中的順序位置(比方說第4列),並且必須在select語句中找到相應的第4列。 select語句很可能會使用表別名,因此我必須查看JOIN語句以查找基於別名的表名。
這是相當耗時的,我希望找到一個更快的方法,如果不是通過查詢,那麼可能通過一些比我的更快或更容易的其他過程。
見http://stackoverflow.com/questions/10048056/find-the-real-column-name-of-an-alias-used-in-a-view – Turophile