可能重複:
SQL Server: Extract Table Meta-Data (description, fields and their data types)SQL Server的元數據表和列descrption
我只是想問一下,如果有一種方法以編程方式檢索從SQL Server 2008表和列說明?這些是您在使用UI時可以輸入的說明。
如果是這樣,有沒有一種方法來編程更新它們呢?
謝謝。
可能重複:
SQL Server: Extract Table Meta-Data (description, fields and their data types)SQL Server的元數據表和列descrption
我只是想問一下,如果有一種方法以編程方式檢索從SQL Server 2008表和列說明?這些是您在使用UI時可以輸入的說明。
如果是這樣,有沒有一種方法來編程更新它們呢?
謝謝。
如果要檢索使用MSSMS的UI設置的「說明」,則需要查詢sys.extended_properties。
從做select * from sys.extended_properties
開始,閱讀值欄中的一些記錄以瞭解我的意思(您會在那裏找到以前設置的描述)。你以後需要和sysobjects進行一些連接(我猜),以便知道哪個表屬於哪個表,你就可以開始了。在谷歌搜索,如果你困惑更多信息=)
而且,試試這個:
select * from sys.extended_properties
inner join sysobjects on sys.extended_properties.major_id = sysobjects.id
的「價值」欄和第二個「名」列(屬於系統對象)是什麼你正在尋找。
希望有所幫助。
要獲得描述數據,您需要使用系統對象/ syscolumns中
SELECT u.name + '.' + t.name AS [table],
td.value AS [table_desc],
c.name AS [column],
cd.value AS [column_desc]
FROM sysobjects t
INNER JOIN sysusers u
ON u.uid = t.uid
LEFT OUTER JOIN sys.extended_properties td
ON td.major_id = t.id
AND td.minor_id = 0
AND td.name = 'MS_Description'
INNER JOIN syscolumns c
ON c.id = t.id
LEFT OUTER JOIN sys.extended_properties cd
ON cd.major_id = c.id
AND cd.minor_id = c.colid
AND cd.name = 'MS_Description'
WHERE t.type = 'u'
ORDER BY t.name, c.colorder
一些信息,可以在
select * from INFORMATION_SCHEMA.TABLES
select * from INFORMATION_SCHEMA.COLUMNS
可以看出你的意思是通過添加sp_addextendedproperty垃圾擺弄?恕我直言,你的模式應該記錄在數據庫之外(並應涉及源代碼管理)。 – 2012-07-25 16:55:20
sys.tables和sys.columns是你的新朋友 – SQLMason 2012-07-25 17:15:58