如何從SQL Server 2005數據庫中的表synonym確定列元數據?我有一個稱爲'ProjectSyn'的名爲'Project'的表的同義詞,但是我找不到同義詞的列元數據。如何從表中獲取列元數據同義詞
我的猜測是在某處確定同義詞的「基本表」,然後查詢該表的列元數據。這是一個正確的方法,如果不是,會是什麼?
如何從SQL Server 2005數據庫中的表synonym確定列元數據?我有一個稱爲'ProjectSyn'的名爲'Project'的表的同義詞,但是我找不到同義詞的列元數據。如何從表中獲取列元數據同義詞
我的猜測是在某處確定同義詞的「基本表」,然後查詢該表的列元數據。這是一個正確的方法,如果不是,會是什麼?
像這樣的事情? (編輯)
select c.*
from
sys.columns c
inner join sys.synonyms s on c.object_id = object_id(s.base_object_name)
where
s.name = 'ProjectSyn'
是的,我認爲獲取基礎對象,然後檢索列是唯一的選擇。
要爲同義詞獲取基本對象名稱,只是查詢視圖sys.synonyms
這是我的解決方案,它以不同的數據庫的同義詞作品:
SELECT TOP 0 * INTO #TEMP1 FROM YourTable
SELECT
[column_name] = c.name,
[data_type] = t.name,
[character_maximum_length] = c.max_length
FROM tempdb.sys.columns c
inner join tempdb.sys.types t on t.system_type_id = c.system_type_id
WHERE [object_id] = object_id('tempdb..#TEMP1');
DROP TABLE #TEMP1
什麼是同義詞? – Aliostad 2010-12-07 12:49:44
@Aliostad - 數據庫對象的替代名稱。有用的重命名對象而不破壞遺留代碼(至少在理論上 - 有時抽象不起作用在這個問題)。語法:`CREATE SYNONYM ProjectSyn FOR Project` – 2010-12-07 13:00:58
謝謝。從未使用它。 – Aliostad 2010-12-07 13:03:21