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

简介: 如何获得数据库里所有表的名字   由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

目录
相关文章
|
1月前
数据库里的表字段含有‘-’的修改
数据库里的表字段含有‘-’的修改
|
3月前
|
SQL 数据库 数据库管理
数据库|数据库之定义删除修改基本表
数据库|数据库之定义删除修改基本表
41 1
|
8月前
|
SQL 数据库
数据库实验一:数据库与数据表定义(2)—— 数据表相关操作
使用T-SQL命令方法创建自定义数据类型myName2为Nvarchar(20),不允许为空;自定义数据类型myDept为char(50),允许为空。(提示:CREATE TYPE…FROM命令)
161 0
数据库实验一:数据库与数据表定义(2)—— 数据表相关操作
|
存储 SQL 缓存
为什么数据库字段要使用NOT NULL?
最近刚入职新公司,发现数据库设计有点小问题,数据库字段很多没有NOT NULL,对于强迫症晚期患者来说,简直难以忍受,因此有了这篇文章。
为什么数据库字段要使用NOT NULL?
|
数据库
查找某数据库中所有的字段
查找某数据库中所有的字段
60 0
|
SQL 关系型数据库 数据库
|
数据库 存储
Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。
原文:Sqlserver获取所有数据库名,表信息,字段信息,主键信息,以及表结构等。 --获取所有数据库名: SELECT name FROM master.
1141 0
|
关系型数据库 数据库 Oracle
相关产品
云迁移中心
推荐文章
更多