一个获取数据字典的Sql语句

SELECT sysobjects.name AS tableName, syscolumns.name AS field, properties.[value] AS fieldRemark, systypes.name AS type, 
                            syscolumns.length, 
ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'Scale'), 0AS [decimal], syscolumns.isnullable AS isnulls, 
                            
CASE WHEN syscomments.text IS NULL THEN '' ELSE syscomments.text END AS [Default]
                            
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity'= 1 THEN 'Y' ELSE 'N' END AS [id]CASE WHEN EXISTS
                            (
SELECT 1 FROM sysobjects WHERE xtype = 'PK' AND name IN (SELECT name FROM sysindexes WHERE indid IN (SELECT indid FROM sysindexkeys WHERE id = syscolumns.id AND colid = syscolumns.colid))) 
                            
THEN 'Y' ELSE 'N' END AS PK FROM syscolumns INNER JOIN sysobjects ON sysobjects.id = syscolumns.id INNER JOIN
                            systypes 
ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN sysproperties properties ON syscolumns.id = properties.id AND 
                            syscolumns.colid 
= properties.smallid LEFT OUTER JOIN sysproperties ON sysobjects.id = sysproperties.id AND 
                            sysproperties.smallid 
= 0 LEFT OUTER JOIN syscomments ON syscolumns.cdefault = syscomments.id
                            
WHERE (sysobjects.xtype = 'U'and systypes.name<>'sysname' order by sysobjects.name

很适用 可以到处XML,HTML,Word,Excel 格式
posted on 2011-08-31 18:49  markbum  阅读(215)  评论(0)    收藏  举报