sql2005表结构

来源:互联网 发布:找错别字的软件 编辑:程序博客网 时间:2024/05/03 23:06

网上有sql2000的表结构统计,自己用了sql2005后就不能使用了,自己修改了一下,可以在sql2005中使用了。也方便以后使用。    

 

         SELECT     TOP (100) PERCENT d.name AS 表名, a.colorder AS 字段序号, a.name AS 字段名,
            (CASE WHEN COLUMNPROPERTY(a.id, a.name, '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 字段说明,
            CASE d .xtype WHEN 'U' THEN '表' ELSE '视图' END AS 表类型, d.crdate AS 创建日期
            FROM         sys.syscolumns AS a LEFT OUTER JOIN       sys.systypes AS b ON a.xtype = b.xusertype INNER JOIN
            sys.sysobjects AS d ON a.id = d.id AND (d.xtype = 'U' OR  d.xtype = 'V') AND d.name <> 'dtproperties' 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.major_id
            ORDER BY a.id, 字段序号