可能重复:
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