SqlServer查询出数据库中所有的表及其字段属性
发布时间:2020-12-12 13:52:40 所属栏目:MsSql教程 来源:网络整理
导读:代码如下所示: /* ********************************SqlServer查询出数据库中所有的表及其字段属性******************************** */ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE ‘‘ END ) AS 表名, -- 如果表名相同就返回空 a.colorder AS
代码如下所示: /********************************* SqlServer查询出数据库中所有的表及其字段属性 *********************************/ SELECT ( CASE WHEN a.colorder = 1 THEN d.name ELSE ‘‘ END ) 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 主键,--查询主键END b.name AS 类型,a.length AS 占用字节数,COLUMNPROPERTY(a.id,‘PRECISION‘) AS 长度,ISNULL(COLUMNPROPERTY(a.id,‘Scale‘),0) AS 小数位数,( CASE WHEN a.isnullable = 1 THEN ‘√‘ ELSE ‘‘ END ) AS 允许空,ISNULL(e.text,‘‘) AS 默认值,ISNULL(g.[value],‘‘) AS 字段说明 FROM syscolumns a LEFT JOIN systypes b ON a.xtype = b.xusertype INNER JOIN sysobjects d ON a.id = d.id AND d.xtype = ‘U‘ AND d.name <> ‘dtproperties‘ LEFT JOIN syscomments e ON a.cdefault = e.id LEFT JOIN sys.extended_properties g ON a.id = g.major_id AND a.colid = g.minor_id ORDER BY a.id,a.colorder; ? 查询结果如下图所示: (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |