admin管理员组文章数量:1794759
sql server查看数据库所有的表名称、表中的字段名称
查看数据库中所有表的名字、字段名称 SELECT name, type_desc FROM AdventureWorks2012_Data.sys.tables ORDER BY Name ----1. 获取所有的数据库名----- SELECT NAME FROM MASTER.DBO.SYSDATABASES ORDER BY NAME -----2. 获取所有的表名------ SELECT NAME FROM SYSOBJECTS WHERE XTYPE='U' ORDER BY NAME --XTYPE='U':表示所有用户表; --XTYPE='S':表示所有系统表; SELECT NAME FROM SYSOBJECTS WHERE TYPE = 'U' AND SYSSTAT = '83' ----注意:一般情况只需要TYPE = 'U',但有时候会有系统表混在其中(不知道什么原因),加上后面一句后就能删除这些系统表了。 ----3.获取所有字段名----- SELECT NAME FROM SYSCOLUMNS WHERE ID=OBJECT_ID('BCUSTOMER'); SELECT SYSCOLUMNS.NAME,SYSTYPES.NAME,SYSCOLUMNS.ISNULLABLE,SYSCOLUMNS.LENGTHFROM SYSCOLUMNS, SYSTYPES WHERE SYSCOLUMNS.XUSERTYPE = SYSTYPES.XUSERTYPE AND SYSCOLUMNS.ID = OBJECT_ID('BCUSTOMER'); /*注意点: ----(A)这里为了重点突出某些重要内容,选取了其中几项信输出。 (B)SYSCOLUMNS表中只含有数据类型编号,要获取完整的名字需要从SYSTYPES表中找,一般用户使用的数据类型用XUSERTYPE对应比较好,不会出现一对多的情况。 (C)SYSCOLUMNS.LENGTH得到的是物理内存的长度,所以NVARCHAR和VARCHAR等类型在数据库中的显示是这个的一半。*/ ----4、得到表中主键所包含的列名------ SELECT SYSCOLUMNS.NAME ,SYSOBJECTS.XTYPE FROM SYSCOLUMNS,SYSOBJECTS,SYSINDEXES,SYSINDEXKEYS WHERE SYSCOLUMNS.ID = OBJECT_ID('BCUSTOMER') AND SYSOBJECTS.XTYPE = 'PK' AND SYSOBJECTS.PARENT_OBJ = SYSCOLUMNS.ID AND SYSINDEXES.ID = SYSCOLUMNS.ID AND SYSOBJECTS.NAME = SYSINDEXES.NAME AND SYSINDEXKEYS.ID = SYSCOLUMNS.ID AND SYSINDEXKEYS.INDID = SYSINDEXES.INDID AND SYSCOLUMNS.COLID = SYSINDEXKEYS.COLID; /*注意:这是在4张系统表中寻找的,关系比较复杂,大致可以表示为: SYSCOLUMNS中存有表中的列信和表ID, SYSOBJECTS表中存有主键名字(即PK_TABLE类似)和表ID, SYSINDEXES中存有主键名字和表ID和INDEX编号, SYSINDEXKEYS中存有表ID和INDEX编号和列编号, 一项一项对应起来后就能找到列名了,呼~*/ ----5、得到表中列的描述内容----- '表示没有找到' SELECT A.NAME,G.VALUE FROM SYSCOLUMNS AS A LEFT JOIN SYSPROPERTIES G ON A.ID=G.ID AND A.COLID = G.SMALLID WHERE A.ID='BCUSTOMER' *查看sql server中所有数据库的名称 SELECT name FROM SysDatabases ORDER BY Name; *查询指定数据库中所有的表名 SELECT Name FROM '库名'..SysObjects Where XType='U' ORDER BY Name; *查看指定表中的字段名及字段类型 SELECT TABLE_CATALOG, TABLE_NAME,COLUMN_NAME,DATA_TYPE from '数据库名'.information_schema.columns where TABLE_NAME = '表名'; SELECT TABLE_CATALOG '数据库名称', TABLE_NAME '表名称',COLUMN_NAME '字段名',DATA_TYPE '字段类型' from erpe_tq1.information_schema.columns where TABLE_NAME = 'Clerk';
版权声明:本文标题:sql server查看数据库所有的表名称、表中的字段名称 内容由林淑君副主任自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.xiehuijuan.com/baike/1686654072a91022.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论