文档详情

sql语句获取数据库中的数据库表列.doc

发布:2017-06-07约5.88千字共5页下载文档
文本预览下载声明
------------------------------------------------------------------------------- 获取SQL Server中的所有数据库,数据表,列,备注说明 在MS SQL Server中,可通过如下语句查询相关系统信息,如: 使用: Select name from sysobjects where xtype=’U’; 可得到所有用户表的名称; ------------------------------------ Select name from sysobjects where xtype=’S’; 得到所有系统表的名称; 相应的,使用: Select count(*)-1 from sysobjects where xtype=’U’; 得到用户表的张数。 上面之所以要减1,是因为在SQLServer2000中,有一系统表:dtproperties被标记为了用户表,这或许是SQLServer2000中的一个BUG,在2005中,就不存在该表了,而是用表:sysdiagram代替,该表是用来存储数据关系图 可通过: Select @@version; 查询数据库的版本 ------------------------------------------------ 在SQL Server2000下sysproperties表中的type=3表示当前的对象是 表,type=4表示是 字段 在SQL Server2005下sys.extended_properties表中的minor_id=0表示当前的对象是 表,minor_id 0表示是 字段 可通过如下语句提取用户表的描述或列的描述,该描述全放在一个叫做sysproperties的系统表中 select sysobjects.name, sysproperties.Value from sysproperties,sysobjects where sysproperties.id=sysobjects.id and sysproperties.name=MS_Description and sysproperties.type=3 order by sysobjects.name 在该表中,id 列与sysobjects中的id列是对应的,当该表的type值为3时,是对表的描述,为4,是对列的描述 …………………………………………………………………………………………………… --1.获取所有数据库名: SELECT Name FROM Master..SysDatabases ORDER BY Name --2.获取所有表名: SELECT Name FROM ..SysObjects Where XType=U ORDER BY Name --XType=U:表示所有用户表; --XType=S:表示所有系统表; --3.获取所有字段名及说明:(Server2000) SELECT syscolumns.name,sysproperties.[value] AS Comment FROM sysproperties INNER JOIN sysobjects ON sysproperties.id = sysobjects.id INNER JOIN syscolumns ON sysobjects.id = syscolumns.id AND sysproperties.smallid = syscolumns.colid WHERE (sysproperties.type = 4) AND (sysobjects.name = message) -------------------------------------------------------------------------------------- 获取表中字段信息(主外键,字段名,数据类型,字段长度,列说明) select (case when PKeyCol.COLUMN_NAME is null then else PK end) + (case when KeyCol2.COLUMN_NAME is null then when NOT PKeyCol.COLUMN_NAME is null then ,FK else FK end) as [主/外键], col.COLUMN_NAME as 字段名称, DATA_TYPE
显示全部
相似文档