2012-07-25 49 views
1

可能重複:
SQL Server: Extract Table Meta-Data (description, fields and their data types)SQL Server的元數據表和列descrption

我只是想問一下,如果有一種方法以編程方式檢索從SQL Server 2008表和列說明?這些是您在使用UI時可以輸入的說明。

如果是這樣,有沒有一種方法來編程更新它們呢?

謝謝。

+1

可以看出你的意思是通過添加sp_addextendedproperty垃圾擺弄?恕我直言,你的模式應該記錄在數據庫之外(並應涉及源代碼管理)。 – 2012-07-25 16:55:20

+0

sys.tables和sys.columns是你的新朋友 – SQLMason 2012-07-25 17:15:58

回答

0

如果要檢索使用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 

的「價值」欄和第二個「名」列(屬於系統對象)是什麼你正在尋找。

希望有所幫助。

0

要獲得描述數據,您需要使用系統對象/ 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