Code SELECT sysobjects.name AS[表名], sysproperties.[value]AS[表说明], syscolumns.name AS[列名], properties.[value]AS[字段说明], systypes.name AS[字段类型], syscolumns.length AS[长度], ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'Scale'), 0) AS[小数位数], CASE syscolumns.isnullable WHEN'1'THEN'Y'ELSE'N'ENDAS[是否允许空值], CASEWHEN syscomments.textISNULLTHEN''ELSE syscomments.textENDAS[默认值], CASEWHENCOLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity') =1THEN'√'ELSE''ENDAS[自增标识], CASEWHENEXISTS (SELECT1FROM sysobjects WHERE xtype ='PK'AND name IN (SELECT name FROM sysindexes WHERE indid IN (SELECT indid FROM sysindexkeys WHERE id = syscolumns.id AND colid = syscolumns.colid))) THEN'√'ELSE''ENDAS[主键] FROM syscolumns INNERJOIN sysobjects ON sysobjects.id = syscolumns.id INNERJOIN systypes ON syscolumns.xtype = systypes.xtype LEFTOUTERJOIN sysproperties properties ON syscolumns.id = properties.id AND syscolumns.colid = properties.smallid LEFTOUTERJOIN sysproperties ON sysobjects.id = sysproperties.id AND sysproperties.smallid =0LEFTOUTERJOIN syscomments ON syscolumns.cdefault = syscomments.id WHERE (sysobjects.xtype ='U') --AND sysobjects.NAME='表名' --只查询某个表的结构,否则将本行注释掉就是全库 ORDERBY[表名],[列名]
SQL2005下执行语句:
Code SELECT Sysobjects.name AS[表名], syscolumns.name AS[列名], systypes.name AS[数据类型], syscolumns.length AS[字段长度], sys.extended_properties.[value]AS[字段描述], syscomments.textAS[默认值], CASE syscolumns.isnullable WHEN'1'THEN'Y'ELSE'N'ENDAS[是否允许空值], ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'Scale'), 0) AS[小数位数], COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity') AS[自增标识] , CASEWHENEXISTS (SELECT1FROM sysobjects WHERE xtype ='PK'AND name IN (SELECT name FROM sysindexes WHERE indid IN (SELECT indid FROM sysindexkeys WHERE id = syscolumns.id AND colid = syscolumns.colid))) THEN'√'ELSE''ENDAS[主键] FROM syscolumns INNERJOIN systypes ON syscolumns.xtype = systypes.xtype LEFTJOIN sysobjects ON syscolumns.id = sysobjects.id LEFTOUTERJOIN sys.extended_properties ON ( sys.extended_properties.minor_id = syscolumns.colid AND sys.extended_properties.major_id = syscolumns.id) LEFTOUTERJOIN syscomments ON syscolumns.cdefault = syscomments.id WHERE (systypes.name <>'sysname') -- AND syscolumns.id IN (SELECT id FROM SYSOBJECTS WHERE xtype = 'U' AND NAME = '表名') --仅查某表,否则注释掉本行为全库 ORDERBY[表名],[列名]