SELECTTOP100PERCENT--a.id, CASEWHEN a.colorder =1THEN d.name ELSE''ENDAS 表名, CASEWHEN a.colorder =1THENisnull(f.value, '') ELSE''ENDAS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASEWHENCOLUMNPROPERTY(a.id, a.name, 'IsIdentity') =1THEN'√'ELSE''ENDAS 标识, CASEWHENEXISTS (SELECT1 FROM dbo.sysindexes si INNERJOIN dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNERJOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNERJOIN dbo.sysobjects so ON so.name = si.name AND so.xtype ='PK' WHERE sc.id = a.id AND sc.colid = a.colid) THEN'√'ELSE''ENDAS 主键, b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数, CASEWHEN a.isnullable =1THEN'√'ELSE''ENDAS 允许空, ISNULL(e.text, '') AS 默认值, ISNULL(g.[value], '') AS 字段说明, d.crdate AS 创建时间, CASEWHEN a.colorder =1THEN d.refdate ELSENULLENDAS 更改时间 FROM dbo.syscolumns a LEFTOUTERJOIN dbo.systypes b ON a.xtype = b.xusertype INNERJOIN dbo.sysobjects d ON a.id = d.id AND d.xtype ='U'AND d.status >=0LEFTOUTERJOIN dbo.syscomments e ON a.cdefault = e.id LEFTOUTERJOIN dbo.sysproperties g ON a.id = g.id AND a.colid = g.smallid AND g.name ='MS_Description'LEFTOUTERJOIN dbo.sysproperties f ON d.id = f.id AND f.smallid =0AND f.name ='MS_Description' ORDERBY d.name, a.colorder
SqlServer2005数据库字典--表结构.sql
SELECTTOP100PERCENT--a.id, CASEWHEN a.colorder =1THEN d.name ELSE''ENDAS 表名, CASEWHEN a.colorder =1THENisnull(f.value, '') ELSE''ENDAS 表说明, a.colorder AS 字段序号, a.name AS 字段名, CASEWHENCOLUMNPROPERTY(a.id, a.name, 'IsIdentity') =1THEN'√'ELSE''ENDAS 标识, CASEWHENEXISTS (SELECT1 FROM dbo.sysindexes si INNERJOIN dbo.sysindexkeys sik ON si.id = sik.id AND si.indid = sik.indid INNERJOIN dbo.syscolumns sc ON sc.id = sik.id AND sc.colid = sik.colid INNERJOIN dbo.sysobjects so ON so.name = si.name AND so.xtype ='PK' WHERE sc.id = a.id AND sc.colid = a.colid) THEN'√'ELSE''ENDAS 主键, b.name AS 类型, a.length AS 长度, COLUMNPROPERTY(a.id, a.name, 'PRECISION') AS 精度, ISNULL(COLUMNPROPERTY(a.id, a.name, 'Scale'), 0) AS 小数位数, CASEWHEN a.isnullable =1THEN'√'ELSE''ENDAS 允许空, ISNULL(e.text, '') AS 默认值, ISNULL(g.[value], '') AS 字段说明, d.crdate AS 创建时间, CASEWHEN a.colorder =1THEN d.refdate ELSENULLENDAS 更改时间 FROM dbo.syscolumns a LEFTOUTERJOIN dbo.systypes b ON a.xtype = b.xusertype INNERJOIN dbo.sysobjects d ON a.id = d.id AND d.xtype ='U'AND d.status >=0LEFTOUTERJOIN dbo.syscomments e ON a.cdefault = e.id LEFTOUTERJOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id AND g.name ='MS_Description'LEFTOUTERJOIN sys.extended_properties f ON d.id = f.major_id AND f.minor_id =0AND f.name ='MS_Description' ORDERBY d.name, 字段序号
2. SqlServer数据库字典--索引.sql
SELECTTOP100PERCENT--a.id, CASEWHEN b.keyno =1THEN c.name ELSE''ENDAS 表名, CASEWHEN b.keyno =1THEN a.name ELSE''ENDAS 索引名称, d.name AS 列名, b.keyno AS 索引顺序, CASE indexkey_property(c.id, b.indid, b.keyno, 'isdescending') WHEN1THEN'降序'WHEN0THEN'升序'ENDAS 排序, CASEWHEN p.id ISNULL THEN''ELSE'√'ENDAS 主键, CASEINDEXPROPERTY(c.id, a.name, 'IsClustered') WHEN1THEN'√'WHEN0THEN''ENDAS 聚集, CASEINDEXPROPERTY(c.id, a.name, 'IsUnique') WHEN1THEN'√'WHEN0THEN''ENDAS 唯一, CASEWHEN e.id ISNULLTHEN''ELSE'√'ENDAS 唯一约束, a.OrigFillFactor AS 填充因子, c.crdate AS 创建时间, c.refdate AS 更改时间 FROM dbo.sysindexes a INNERJOIN dbo.sysindexkeys b ON a.id = b.id AND a.indid = b.indid INNERJOIN dbo.syscolumns d ON b.id = d.id AND b.colid = d.colid INNERJOIN dbo.sysobjects c ON a.id = c.id AND c.xtype ='U'LEFTOUTERJOIN dbo.sysobjects e ON e.name = a.name AND e.xtype ='UQ'LEFTOUTERJOIN dbo.sysobjects p ON p.name = a.name AND p.xtype ='PK' WHERE (OBJECTPROPERTY(a.id, N'IsUserTable') =1) AND (OBJECTPROPERTY(a.id, N'IsMSShipped') =0) AND (INDEXPROPERTY(a.id, a.name, 'IsAutoStatistics') =0) ORDERBY c.name, a.name, b.keyno
SELECTDISTINCT TOP100PERCENTisnull(p.name,'') AS 父对象, o.xtype, CASE o.xtype WHEN'C'THEN'CHECK 约束'WHEN'D'THEN'默认值或DEFAULT约束' WHEN'F'THEN'FOREIGNKEY约束'WHEN'L'THEN'日志'WHEN'FN'THEN'标量函数' WHEN'IF'THEN'内嵌表函数'WHEN'P'THEN'存储过程'WHEN'PK'THEN'PRIMARYKEY约束' WHEN'RF'THEN'复制筛选存储过程'WHEN'S'THEN'系统表'WHEN'TF'THEN'表函数' WHEN'TR'THEN'触发器'WHEN'U'THEN'用户表'WHEN'UQ'THEN'UNIQUE 约束' WHEN'V'THEN'视图'WHEN'X'THEN'扩展存储过程'WHEN'R'THEN'规则'ELSENULL ENDAS 类型, o.name AS 对象名, o.crdate AS 创建时间, o.refdate AS 更改时间, c.textAS 声明语句,OBJECTPROPERTY(o.id, N'IsMSShipped') FROM dbo.sysobjects o LeftJOIN dbo.sysobjects p ON o.parent_obj = p.id LEFTOUTERJOIN dbo.syscomments c ON o.id = c.id WHERE--(o.xtype IN ('C','D','F','PK','UQ','L','FN','IF','TF','TR','P','R','RF','X','S','U','V')) AND (OBJECTPROPERTY(o.id, N'IsMSShipped') =0) AND (isnull(p.name,'') <> N'dtproperties') ORDERBY o.xtype DESC