1、查看表和試圖
創(chuàng)新互聯(lián)建站是一家專業(yè)的成都網(wǎng)站建設(shè)公司,我們專注成都網(wǎng)站制作、網(wǎng)站建設(shè)、網(wǎng)絡(luò)營銷、企業(yè)網(wǎng)站建設(shè),友情鏈接,廣告投放平臺(tái)為企業(yè)客戶提供一站式建站解決方案,能帶給客戶新的互聯(lián)網(wǎng)理念。從網(wǎng)站結(jié)構(gòu)的規(guī)劃UI設(shè)計(jì)到用戶體驗(yàn)提高,創(chuàng)新互聯(lián)力求做到盡善盡美。
SELECT * FROM sys.objects WHERE object_id = object_id('表名或視圖名')
在sqlserver中一般可通過查詢sys.objects系統(tǒng)表來得知結(jié)果,不過可以有更方便的方法
如下:
if object_id('tb_table') is not null
print 'exist'
else
print'not exist'
如上,可用object_id()來快速達(dá)到相同的目的,tb_table就是我將要?jiǎng)?chuàng)建的資源的名稱,所以要先判斷當(dāng)前數(shù)據(jù)庫中不存在相同的資源
object_id()可接受兩個(gè)參數(shù),第一個(gè)如上所示,代表資源的名稱,上面的就是表的名字,但往往我們要說明我們所要?jiǎng)?chuàng)建的是什么類型的資源,
這樣sql可以明確地在一種類型的資源中查找是否有重復(fù)的名字,如下:
if object_id('tb_table','u') is not null
print 'exist'
else
print'not exist'
第二個(gè)參數(shù) "u" 就表示tb_table是用戶創(chuàng)建的表,即:USER_TABLE地首字母簡(jiǎn)寫
查詢sys.objects中可得到各種資源的類型名稱(TYPE列),這里之舉幾個(gè)主要的例子
u ----------- 用戶創(chuàng)建的表,區(qū)別于系統(tǒng)表(USER_TABLE)
s ----------- 系統(tǒng)表(SYSTEM_TABLE)
v ----------- 視圖(VIEW)
p ----------- 存儲(chǔ)過程(SQL_STORED_PROCEDURE)
2、查看表的列名
select * from syscolumns where id=object_id('表名') and name='列名'
3、查看數(shù)據(jù)庫
select * from sys.databases where name = 'student'
4、查看備份設(shè)備
"select * from sys.backup_devices where name ='backupdb'
(添加備份設(shè)備:exec sp_addumpdevice 'disk','backupdb','d:\\backup\\backupdb.bak')
5、查看數(shù)據(jù)文件
select name, physical_name dbfile from sys.master_files where database_id=db_id('student')
master數(shù)據(jù)庫中sysdatabases表(是sqlserver中所有的數(shù)據(jù)庫的庫名) :
如果你要查詢的是所有數(shù)據(jù)庫(用戶/系統(tǒng)):
select * from master..sysdatabases
如果你要查詢的是用戶數(shù)據(jù)庫,則使用:
select * from master..sysdatabases where dbid 4
如果你要查詢的是系統(tǒng)數(shù)據(jù)庫,只需要把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.對(duì)應(yīng)數(shù)據(jù)庫中sysobjects表(反應(yīng)的是相應(yīng)數(shù)據(jù)庫中所有的對(duì)象):
這個(gè)表的用處是最大的,因?yàn)樗锩娲娣诺挠校罕恚ㄏ到y(tǒng)/用戶)、存儲(chǔ)過程(系統(tǒng)/用戶)、視圖、主鍵、外鍵等。
這里就不一一說明了。
比如你sqlserver中有個(gè)數(shù)據(jù)庫名叫 test,如果要查詢?cè)摂?shù)據(jù)庫中的所有表對(duì)象:
select * from test..sysobjects where type = ’u’ or type = ’s’
這里的type = ’u’是表示用戶表對(duì)象,type = ’s’是系統(tǒng)表對(duì)象,怎樣單獨(dú)查詢用戶表對(duì)象或者系統(tǒng)表對(duì)象就不用說了吧。
如果你要查詢的是存儲(chǔ)過程當(dāng)然也分了系統(tǒng)和用戶了:
這個(gè)是查詢數(shù)據(jù)庫中所有存儲(chǔ)過程
select * from test..sysobjects where type = ’p’
如果你要查詢的是用戶存儲(chǔ)過程則加上 and category 2 即可。
查詢系統(tǒng)存儲(chǔ)過程就不用說了吧(category = 2 誰不知道。。。)
查詢視圖與查詢存儲(chǔ)過程一樣,比如:
你查詢的是數(shù)據(jù)庫中所有視圖
select * from test..sysobjects where type = ’v’
如果你要查詢的是用戶視圖則加上 and category 2 即可。
其他的就不說了,就把 它們的type給大家說下:
type = ’ pk’ 表示主鍵。
type = ’ d’ 外鍵引用。
type = ’uq’ 唯一索引。
下面附錄一些常用系統(tǒng)表
名稱 地址 說明
sysaltfiles 主數(shù)據(jù)庫 保存數(shù)據(jù)庫的文件
syscharsets 主數(shù)據(jù)庫 字符集與排序順序
sysconfigures 主數(shù)據(jù)庫 配置選項(xiàng)
syscurconfigs 主數(shù)據(jù)庫 當(dāng)前配置選項(xiàng)
sysdatabases 主數(shù)據(jù)庫 服務(wù)器中的數(shù)據(jù)庫
syslanguages 主數(shù)據(jù)庫 語言
syslogins 主數(shù)據(jù)庫 登陸帳號(hào)信息
sysoledbusers 主數(shù)據(jù)庫 鏈接服務(wù)器登陸信息
sysprocesses 主數(shù)據(jù)庫 進(jìn)程
sysremotelogins主數(shù)據(jù)庫 遠(yuǎn)程登錄帳號(hào)
syscolumns 每個(gè)數(shù)據(jù)庫 列
sysconstrains 每個(gè)數(shù)據(jù)庫 限制
sysfilegroups 每個(gè)數(shù)據(jù)庫 文件組
sysfiles 每個(gè)數(shù)據(jù)庫 文件
sysforeignkeys 每個(gè)數(shù)據(jù)庫 外部關(guān)鍵字
sysindexs 每個(gè)數(shù)據(jù)庫 索引
sysmenbers 每個(gè)數(shù)據(jù)庫 角色成員
sysobjects 每個(gè)數(shù)據(jù)庫 所有數(shù)據(jù)庫對(duì)象
syspermissions 每個(gè)數(shù)據(jù)庫 權(quán)限
systypes 每個(gè)數(shù)據(jù)庫 用戶定義數(shù)據(jù)類型
sysusers 每個(gè)數(shù)據(jù)庫 用戶
數(shù)據(jù)庫,在軟件開發(fā)中,可以儲(chǔ)存數(shù)據(jù),可以在里面進(jìn)行一些軟件設(shè)置,一般的軟件公司實(shí)施的話都要用到的,希望能幫到你
(1)高性能設(shè)計(jì),可充分利用WindowsNT的優(yōu)勢(shì)。
(2)系統(tǒng)管理先進(jìn),支持Windows圖形化管理工具,支持本地和遠(yuǎn)程的系統(tǒng)管理和配置。
(3)強(qiáng)壯的事務(wù)處理功能,采用各種方法保證數(shù)據(jù)的完整性。
(4)支持對(duì)稱多處理器結(jié)構(gòu)、存儲(chǔ)過程、ODBC,并具有自主的SQL語言。 SQLServer以其內(nèi)置的數(shù)據(jù)復(fù)制功能、強(qiáng)大的管理工具、與Internet的緊密集成和開放的系統(tǒng)結(jié)構(gòu)為廣大的用戶、開發(fā)人員和系統(tǒng)集成商提供了一個(gè)出眾的數(shù)據(jù)庫平臺(tái)。
SQLserver 和Mysql的區(qū)別為:開發(fā)公司不同、開發(fā)工具包搭配不同、開放性不同。
一、開發(fā)公司不同
1、SQLserver:SQLserverr是由Microsoft開發(fā)和推廣。
2、Mysql:Mysql由瑞典MySQL AB 公司開發(fā),屬于?Oracle?旗下產(chǎn)品。
二、開發(fā)工具包搭配不同
1、SQLserver:SQLserver能與 Microsoft Visual Studio、Microsoft Office System以及開發(fā)工具包搭配。
2、Mysql:Mysql不能與 Microsoft Visual Studio、Microsoft Office System以及開發(fā)工具包搭配。
三、開放性不同
1、SQLserver:SQLserver不是開放源碼軟件
2、Mysql:Mysql是開放源碼軟件。
SQL Server的特點(diǎn)是可信任。使得公司可以以很高的安全性、可靠性和可擴(kuò)展性來運(yùn)行他們最關(guān)鍵任務(wù)的應(yīng)用程序;高效。使得公司可以降低開發(fā)和管理他們的數(shù)據(jù)基礎(chǔ)設(shè)施的時(shí)間和成本;智能。提供了一個(gè)全面的平臺(tái),可以在用戶需要的時(shí)候給他發(fā)送觀察和信息。
Mysql的特點(diǎn)是其體積小、速度快、總體擁有成本低,尤其是開放源碼。一般中小型網(wǎng)站的開發(fā)都選擇 MySQL 作為網(wǎng)站數(shù)據(jù)庫。