我试图找到一种方法来提取有关SQL Server(2008)中我的表的信息。
我需要的数据包括表的描述(从“属性”窗口的Description属性填充),该表的字段的列表以及它们各自的数据类型。
有什么方法可以提取此类元数据?我想我必须使用一些sys
sp,但我不确定是哪一个。
最佳答案
要获取描述数据,不幸的是,您必须使用sysobjects / syscolumns来获取ID:
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
您可以使用info-schema来做到这一点,但是您必须将etc串联起来才能调用OBJECT_ID()-这样做有什么意义呢?
关于sql - SQL Server:提取表元数据(描述,字段及其数据类型),我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/887370/