IT学习联盟

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
IT学习联盟 门户 文章 数据库 查看内容

数据库字典查询方法

2012-8-18 05:31| 发布者: admin| 查看: 758| 评论: 0


数据库字典查询方法
 
这是个数据库字典查询方法.
 
先保留这两个语句,以后有时间我在详细说明来源.
 
查表字典:
  www.2cto.com  
SELECT     a.name AS 表名, b.value AS 描述, c.name AS 构架
FROM         sys.objects AS a LEFT OUTER JOIN
                      sys.extended_properties AS b ON a.object_id = b.major_id LEFT OUTER JOIN
                      sys.schemas AS c ON a.schema_id = c.schema_id
WHERE     (a.type = 'U') AND (b.minor_id = 0)
查字段字典:
 
select * from sys.extended_properties
 
SELECT     TOP (100) PERCENT d.name AS 表名, i.name AS 构架, a.colorder AS 字段序号, a.name AS 字段名, (CASE WHEN COLUMNPROPERTY(a.id, a.name,   www.2cto.com  
                      'IsIdentity') = 1 THEN '√' ELSE '' END) AS 标识, (CASE WHEN
                          (SELECT     COUNT(*)
                            FROM          sysobjects
                            WHERE      (name IN
                                                       (SELECT     name
                                                         FROM          sysindexes
                                                         WHERE      (id = a.id) AND (indid IN
                                                                                    (SELECT     indid
                                                                                      FROM          sysindexkeys
                                                                                      WHERE      (id = a.id) AND (colid IN
                                                                                                                 (SELECT     colid
                                                                                                                   FROM          syscolumns
                                                                                                                   WHERE      (id = a.id) AND (name = a.name))))))) AND (xtype = 'PK')) > 0 THEN '√' ELSE '' END) AS 主键, 
                      b.name AS 类型, a.length AS 占用字节数, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 长度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 
                      0) AS 小数位数, (CASE WHEN a.isnullable = 1 THEN '√' ELSE '' END) AS 允许空, ISNULL(e.text, '') AS 默认值, ISNULL(g.value, '') AS 字段说明
FROM         sys.syscolumns AS a LEFT OUTER JOIN  www.2cto.com  
                      sys.systypes AS b ON a.xtype = b.xusertype LEFT OUTER JOIN
                      sys.sysobjects AS d ON a.id = d.id AND d.xtype = 'U' AND d.name <> 'dtproperties' LEFT OUTER JOIN
                      sys.objects AS h ON d.id = h.object_id LEFT OUTER JOIN
                      sys.schemas AS i ON h.schema_id = i.schema_id LEFT OUTER JOIN
                      sys.syscomments AS e ON a.cdefault = e.id LEFT OUTER JOIN
                      sys.extended_properties AS g ON a.id = g.major_id AND a.colid = g.minor_id
ORDER BY a.id, 字段序号
 
看不明白没关系,慢慢地我会再详细写明如果设置字典.
 
Archiver|IT学习联盟| 网站地图

Powered by Discuz! X2.5© 2001-2010 世界学习室 大伟制作

GMT+8, 2018-8-14 16:54 , Processed in 0.088937 second(s), 12 queries .