Code SELECT 表名=casewhen a.colorder=1then d.name else''end, 表说明=casewhen a.colorder=1thenisnull(f.value,'') else''end, 字段序号=a.colorder, 字段名=a.name, 标识=casewhenCOLUMNPROPERTY( a.id,a.name,'IsIdentity')=1then'√'else''end, 主键=casewhenexists(SELECT1FROM sysobjects where xtype='PK'and parent_obj=a.id and name in ( SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then'√'else''end, 类型=b.name, 占用字节数=a.length, 长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'), 小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 允许空=casewhen a.isnullable=1then'√'else''end, 默认值=isnull(e.text,''), 字段说明=isnull(g.[value],'') FROM syscolumns a leftjoin systypes b on a.xusertype=b.xusertype innerjoin sysobjects d on a.id=d.id and d.xtype='U'and d.name<>'dtproperties' leftjoin syscomments e on a.cdefault=e.id leftjoin sysproperties g on a.id=g.id and a.colid=g.smallid leftjoin sysproperties f on d.id=f.id and f.smallid=0 --where d.name='要查询的表' --如果只查询指定表,加上此条件 orderby a.id,a.colorder
(2)
Code SQL2000系统表的应用 --1:获取当前数据库中的所有用户表 select Name from sysobjects where xtype='u'and status>=0 --2:获取某一个表的所有字段 select name from syscolumns where id=object_id('表名') --3:查看与某一个表相关的视图、存储过程、函数 select a.*from sysobjects a, syscomments b where a.id = b.id and b.textlike'%表名%' --4:查看当前数据库中所有存储过程 select name as 存储过程名称 from sysobjects where xtype='P' --5:查询用户创建的所有数据库 select*from master..sysdatabases D where sid notin(select sid from master..syslogins where name='sa') 或者 select dbid, name ASDB_NAMEfrom master..sysdatabases where sid <>0x01 --6:查询某一个表的字段和数据类型 select column_name,data_type from information_schema.columns where table_name ='表名' --7:取得表字段的描述 select name, (select value from sysproperties where id = syscolumns.id and smallid=syscolumns.colid) as 描述 from syscolumns where id=object_id('表名') (3)
Code --SQL Server 2005下使用 SELECT Sysobjects.name AS[数据表名], syscolumns.name AS[列名], systypes.name AS[数据类型], syscolumns.length AS[字段长度], sys.extended_properties.[value]AS[字段描述], syscomments.textAS [默认值],syscolumns.isnullable AS[是否允许空值]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 syscolumns.id IN (SELECT id FROM SYSOBJECTS WHERE xtype ='U') AND (systypes.name <>'sysname') ORDERBY syscolumns.colid