如何获得数据库里所有表的名字

简介: 如何获得数据库里所有表的名字   由SQL Server管理的每个数据库里都有一个名为sysobjects的视图,它是system级别的, 所以它的全限定名是——sys.sysobjects  这张表里存储的不光是数据库里的表,它存储的是 一个数据库中所有的“对象”——包括了表的主键、存储过程、...

如何获得数据库里所有表的名字
   由SQL Server管理的每个数据库里都有一个名为sysobjects的视图,它是system级别的,

所以它的全限定名是——sys.sysobjects  这张表里存储的不光是数据库里的表,它存储的是

一个数据库中所有的“对象”——包括了表的主键、存储过程、触发器等等,一共是24种——表

(Table,确切地说是“用户自定义表”)只是这24种对象中的一种:
执行下面的查询语句,可以得到所有包含在sys.sysobjects视图里的数据

   SELECT * FROM sys.sysobjects


得出数据后,注意名为type的列——这一列标明了对象的类型,也就是前面提到的24种。

  type
  AF = Aggregate function (CLR) 
  C = CHECK constraint 
  D = DEFAULT (constraint or stand-alone) 
  F = FOREIGN KEY constraint 
  FN = SQL scalar function 
  FS = Assembly (CLR) scalar function 
  FT = Assembly (CLR) table-valued function 
  IF = SQL inline table-valued function 
  IT = Internal table 
  P = SQL stored procedure 
  PC = Assembly (CLR) stored procedure 
  PK = PRIMARY KEY constraint 
  R = Rule (old-style, stand-alone) 
  RF = Replication-filter-procedure

  S = System base table 
  SN = Synonym 
  SQ = Service queue 
  TA = Assembly (CLR) DML trigger 
  TF = SQL table-valued-function 
  TR = SQL DML trigger 
  U = Table (user-defined) 
  UQ = UNIQUE constraint 
  V = View 
  X = Extended stored procedure 


我们要得到名称的表(用户自定义表)就是类型为“U”的对象;而sys.objects的类型为“S”。所以,

SQL语句应该是——
   SELECT name  FROM sys.sysobjects  WHERE type='U'
GO

目录
相关文章
|
5月前
|
SQL 数据库
数据库修改表
数据库修改表
47 0
|
5月前
|
数据库
数据库字段
数据库字段
|
5月前
|
存储 关系型数据库 MySQL
{MySQL} 数据库约束& 表的关系& 新增&&删除& 修改& 查询
{MySQL} 数据库约束& 表的关系& 新增&&删除& 修改& 查询
39 0
数据库里的表字段含有‘-’的修改
数据库里的表字段含有‘-’的修改
|
SQL 数据库 数据库管理
数据库|数据库之定义删除修改基本表
数据库|数据库之定义删除修改基本表
110 1
|
SQL 数据库
数据库实验一:数据库与数据表定义(2)—— 数据表相关操作
使用T-SQL命令方法创建自定义数据类型myName2为Nvarchar(20),不允许为空;自定义数据类型myDept为char(50),允许为空。(提示:CREATE TYPE…FROM命令)
318 0
数据库实验一:数据库与数据表定义(2)—— 数据表相关操作
|
SQL 关系型数据库 数据库
|
Oracle 关系型数据库 数据库
达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法
达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法
568 0
达梦数据库、oracle数据库如何判断指定表有没有建立索引?对应的表有没有索引查询方法
|
数据库
查找某数据库中所有的字段
查找某数据库中所有的字段
102 0
|
SQL 数据库 Go
SQL脚本修改数据库名称
USE master; GO DECLARE @SQL VARCHAR(MAX); SET @SQL='' SELECT @SQL=@SQL+'; KILL '+RTRIM(SPID) FROM master.
961 0
下一篇
无影云桌面