sql server 怎樣用SQL語句查詢一個數據庫中的所有表?


搜了一大堆做個總結,以下是Sql Server中的方法,備忘下

1,利用sysobjects系統表 在這個表中,在數據庫中創建的每個對象(例如約束、默認值、日志、規則以及存儲過程)都有對應一行,我們在該表中篩選出xtype等於U的所有記錄,就為數據庫中的表了。 示例語句如下::

select * from sysobjects where xtype='U'

注意:在SQL SERVER2005中,出現了sys.objects目錄視圖來代替sysobjects系統表,我們在SQL SERVER2005及以后的版本中,可以使用sysobjects系統表與sys.objects目錄視圖的任意對象來查詢所有表。

2,利用sys.tables目錄視圖 sys.tables目錄視圖,為每個表對象返回一行. 示例語句如下:

select * from sys.tables

注意:sys.tables目錄視圖也只有在SQL SERVER2005及以上的版本中才能使用。

3,利用存儲過程sp_tables sp_tables存儲過程,可返回可在當前環境中查詢的對象列表。這代表可在FROM子句中出現的任何對象。 我們可以執行如下語句:

exec sp_tables

在結果集中篩選出所有TABLE_TYPE等於TABLE的記錄就是表信息了。

其他有用的系統功能

--讀取庫中的所有表名
select name from sysobjects where xtype='u'
--讀取指定表的所有列名
select name from syscolumns where id=(select max(id) from sysobjects where xtype='u' and name='表名')
獲取數據庫表名和字段
sqlserver中各個系統表的作用
sysaltfiles 主數據庫 保存數據庫的文件
syscharsets 主數據庫 字符集與排序順序
sysconfigures 主數據庫 配置選項
syscurconfigs 主數據庫 當前配置選項
sysdatabases 主數據庫 服務器中的數據庫
syslanguages 主數據庫 語言
syslogins 主數據庫 登陸帳號信息
sysoledbusers 主數據庫 鏈接服務器登陸信息
sysprocesses 主數據庫 進程
sysremotelogins主數據庫 遠程登錄帳號
syscolumns 每個數據庫 列
sysconstrains 每個數據庫 限制
sysfilegroups 每個數據庫 文件組
sysfiles 每個數據庫 文件
sysforeignkeys 每個數據庫 外部關鍵字
sysindexs 每個數據庫 索引
sysmenbers 每個數據庫 角色成員
sysobjects 每個數據庫 所有數據庫對象
syspermissions 每個數據庫 權限
systypes 每個數據庫 用戶定義數據類型
select 列名=name from syscolumns where id=object_id(N'要查的表名')


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM