网上有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, 字段序号