當我們建立Sql Server 連接之后,可以通過如下語句得到當前Sql server中所有的數據的名稱:

創(chuàng)新互聯(lián)建站是一家專注于成都網站設計、網站建設與策劃設計,永昌網站建設哪家好?創(chuàng)新互聯(lián)建站做網站,專注于網站建設十多年,網設計領域的專業(yè)建站公司;建站業(yè)務涵蓋:永昌等地區(qū)。永昌做網站價格咨詢:028-86922220
use master
select [name] from [sysdatabases] order by [name]
go
我們通過查詢其中一個數據庫aspnetpager,就可以得到這個數據庫中的所有的表名了,語句如下:
use aspnetpager
select [id], [name] from [sysobjects] where [type] = 'u' order by [name]
這些是系統(tǒng)帶的一些表格,不用管它,這些是記錄操作記錄,歷史文件數據什么的,不用理.也不讓刪
--查詢數據庫里所有表名和字段名的語句
--SQL
查詢所有表名:
SELECT
NAME
FROM
SYSOBJECTS
WHERE
TYPE='U'
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
--查詢表的所有字段名:
SELECT
NAME
FROM
SYSCOLUMNS
WHERE
ID=OBJECT_ID('
表名'
)
SELECT
*
FROM
INFORMATION_SCHEMA.TABLES
SELECT
*
FROM
INFORMATION_SCHEMA.VIEWS
SELECT
*
FROM
INFORMATION_SCHEMA.COLUMNS
---------以下為其他數據庫查詢表----------
--ORACLE
查看所有表名:
SELECT
TABLE_NAME
FROM
USER_TABLES
--ACCESS
查看所有表名:
SELECT
NAME
FROM
MSYSOBJECTS
WHERE
TYPE=1
AND
FLAGS=0
--MSYSOBJECTS
是系統(tǒng)對象,默認情況是隱藏的。通過工具、選項、視圖、顯示、系統(tǒng)對象可以使之顯示出來。
1、查詢SQL中的所有表:SelectTABLE_NAMEFROM數據庫名稱.INFORMATION_SCHEMA.TABLESWhereTABLE_TYPE='BASETABLE'執(zhí)行之后,就可以看到數據庫中所有屬于自己建的表的名稱2、查詢SQL中所有表及列:Selectdbo.sysobjects.nameasTable_name,dbo.syscolumns.nameASColumn_nameFROMdbo.syscolumnsINNERJOINdbo.sysobjectsONdbo.syscolumns.id=dbo.sysobjects.idWhere(dbo.sysobjects.xtype='u')AND(NOT(dbo.sysobjects.nameLIKE'dtproperties'))3、在Sql查詢分析器,還有一個簡單的查詢方法:EXECsp_MSforeachtable@command1="sp_spaceused'?'"執(zhí)行完之后,就可以看到數據庫中所有用戶表的信息4、查詢總存儲過程數:selectcount(*)總存儲過程數fromsysobjectswherextype='p'附:xtype類型D=默認值或DEFAULT約束F=FOREIGNKEY約束L=日志FN=標量函數IF=內嵌表函數P=存儲過程PK=PRIMARYKEY約束(類型是K)RF=復制篩選存儲過程S=系統(tǒng)表TF=表函數TR=觸發(fā)器U=用戶表UQ=UNIQUE約束(類型是K)V=視圖X=擴展存儲過程另:在sqlserver中取得某個數據庫中所有表名的sql語句selectsysobjects.namefromsysobjects.xtype='U';SELECTnameWHERE(xtype='U')在數據庫的sysobjects表里有這個數據庫全部表的信息,xtype值為'U'的就是表名注意:一般通過上述方法獲得全部用戶表示都會有一個dtproperties表,SQLSERVER默認它也是用戶表,想要從用戶表中排出,需要加上限定條件status0,即:select*fromsysobjectswherextype='U'andstatus0
1、查看表和試圖
SELECT * FROM sys.objects WHERE object_id = object_id('表名或視圖名')
在sqlserver中一般可通過查詢sys.objects系統(tǒng)表來得知結果,不過可以有更方便的方法
如下:
if object_id('tb_table') is not null
print 'exist'
else
print'not exist'
如上,可用object_id()來快速達到相同的目的,tb_table就是我將要創(chuàng)建的資源的名稱,所以要先判斷當前數據庫中不存在相同的資源
object_id()可接受兩個參數,第一個如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要創(chuàng)建的是什么類型的資源,
這樣sql可以明確地在一種類型的資源中查找是否有重復的名字,如下:
if object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二個參數 "u" 就表示tb_table是用戶創(chuàng)建的表,即:USER_TABLE地首字母簡寫
查詢sys.objects中可得到各種資源的類型名稱(TYPE列),這里之舉幾個主要的例子
u ----------- 用戶創(chuàng)建的表,區(qū)別于系統(tǒng)表(USER_TABLE)
s ----------- 系統(tǒng)表(SYSTEM_TABLE)
v ----------- 視圖(VIEW)
p ----------- 存儲過程(SQL_STORED_PROCEDURE)
2、查看表的列名
select * from syscolumns where id=object_id('表名') and name='列名'
3、查看數據庫
select * from sys.databases where name = 'student'
4、查看備份設備
"select * from sys.backup_devices where name ='backupdb'
(添加備份設備:exec sp_addumpdevice 'disk','backupdb','d:\\backup\\backupdb.bak')
5、查看數據文件
select name, physical_name dbfile from sys.master_files where database_id=db_id('student')
master數據庫中sysdatabases表(是sqlserver中所有的數據庫的庫名) :
如果你要查詢的是所有數據庫(用戶/系統(tǒng)):
select * from master..sysdatabases
如果你要查詢的是用戶數據庫,則使用:
select * from master..sysdatabases where dbid 4
如果你要查詢的是系統(tǒng)數據庫,只需要把where字句改為dbid 4即可。
6、查看執(zhí)行的sql語句
SELECT cacheobjtype,objtype,usecounts,sql
from sys.syscacheobjects where sql not like'%cach%' and sql not like '%sys.%'
2.對應數據庫中sysobjects表(反應的是相應數據庫中所有的對象):
這個表的用處是最大的,因為它里面存放的有:表(系統(tǒng)/用戶)、存儲過程(系統(tǒng)/用戶)、視圖、主鍵、外鍵等。
這里就不一一說明了。
比如你sqlserver中有個數據庫名叫 test,如果要查詢該數據庫中的所有表對象:
select * from test..sysobjects where type = ’u’ or type = ’s’
這里的type = ’u’是表示用戶表對象,type = ’s’是系統(tǒng)表對象,怎樣單獨查詢用戶表對象或者系統(tǒng)表對象就不用說了吧。
如果你要查詢的是存儲過程當然也分了系統(tǒng)和用戶了:
這個是查詢數據庫中所有存儲過程
select * from test..sysobjects where type = ’p’
如果你要查詢的是用戶存儲過程則加上 and category 2 即可。
查詢系統(tǒng)存儲過程就不用說了吧(category = 2 誰不知道。。。)
查詢視圖與查詢存儲過程一樣,比如:
你查詢的是數據庫中所有視圖
select * from test..sysobjects where type = ’v’
如果你要查詢的是用戶視圖則加上 and category 2 即可。
其他的就不說了,就把 它們的type給大家說下:
type = ’ pk’ 表示主鍵。
type = ’ d’ 外鍵引用。
type = ’uq’ 唯一索引。
下面附錄一些常用系統(tǒng)表
名稱 地址 說明
sysaltfiles 主數據庫 保存數據庫的文件
syscharsets 主數據庫 字符集與排序順序
sysconfigures 主數據庫 配置選項
syscurconfigs 主數據庫 當前配置選項
sysdatabases 主數據庫 服務器中的數據庫
syslanguages 主數據庫 語言
syslogins 主數據庫 登陸帳號信息
sysoledbusers 主數據庫 鏈接服務器登陸信息
sysprocesses 主數據庫 進程
sysremotelogins主數據庫 遠程登錄帳號
syscolumns 每個數據庫 列
sysconstrains 每個數據庫 限制
sysfilegroups 每個數據庫 文件組
sysfiles 每個數據庫 文件
sysforeignkeys 每個數據庫 外部關鍵字
sysindexs 每個數據庫 索引
sysmenbers 每個數據庫 角色成員
sysobjects 每個數據庫 所有數據庫對象
syspermissions 每個數據庫 權限
systypes 每個數據庫 用戶定義數據類型
sysusers 每個數據庫 用戶
當前名稱:sqlserver帶的表,sql server保存表
網站地址:http://chinadenli.net/article21/dsipjjd.html
成都網站建設公司_創(chuàng)新互聯(lián),為您提供網站設計公司、App開發(fā)、虛擬主機、商城網站、ChatGPT、做網站
聲明:本網站發(fā)布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)