zoukankan      html  css  js  c++  java
  • 如何获得数据库里所有表的名字

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

  • 相关阅读:
    30分钟掌握ES6/ES2015核心内容(下)
    30分钟掌握ES6/ES2015核心内容(上)
    域名、主机名与URL
    localstorage sessionstorage cookie的区别
    http中post 和 get 请求方法区别
    leetcode33. 搜索旋转排序数组
    leetcode 56. 合并区间
    MySQL EXPLAIN
    array 数组
    判断一个字符串的所有字符是否都在另一个字符串中
  • 原文地址:https://www.cnblogs.com/puresoul/p/1690985.html
Copyright © 2011-2022 走看看