啟動(dòng)SQL Server數(shù)據(jù)庫服務(wù)
啟動(dòng)SQL Server數(shù)據(jù)庫服務(wù)有以下三種方式州袒。
①后臺(tái)啟動(dòng)服務(wù)
??“我的電腦”蹬音,右鍵單擊——>管理——>服務(wù)和應(yīng)用程序——>雙擊“服務(wù)”,這里會(huì)顯示系統(tǒng)中所有服務(wù)库说。找到SQL Server (MSSOLSERVER)這個(gè)服務(wù)酝润,此時(shí)我們就可以選擇啟動(dòng)此服務(wù):
②SQL Server配置管理器啟動(dòng)服務(wù)
??開始——>全部程序——>Microsoft SQL Server 2008——>SQL Server配置管理器。
SQL Server服務(wù)——>右擊SQL Server (MSSOLSERVER)啟動(dòng)服務(wù)
③在運(yùn)行窗口中使用命令啟動(dòng)和停止服務(wù)
??通過
net start 服務(wù)器名稱
命令啟動(dòng)SQL Server數(shù)據(jù)庫服務(wù)器璃弄。
C:\>net start MSSOLSERVER
數(shù)據(jù)庫的服務(wù)器機(jī)器名與實(shí)例名稱
數(shù)據(jù)庫實(shí)例就是后臺(tái)進(jìn)程和數(shù)據(jù)庫文件的集合。一個(gè)SQL Server服務(wù)器就是一個(gè)實(shí)例构回。 Microsoft SQL Server支持在同一臺(tái)計(jì)算機(jī)上同時(shí)運(yùn)行多個(gè) SQL Server 數(shù)據(jù)庫引擎實(shí)例夏块,每個(gè) SQL Server 數(shù)據(jù)庫引擎實(shí)例可以配置IP地址,相關(guān)的訪問協(xié)議纤掸,端口等脐供,并且各有一套不為其它實(shí)例共享的系統(tǒng)及用戶數(shù)據(jù)庫。
??實(shí)例的可訪問性需要啟動(dòng)該實(shí)例對(duì)應(yīng)的相關(guān)服務(wù)借跪。此處需要注意的是實(shí)例名和實(shí)例的服務(wù)名并不是相同的政己。缺省的實(shí)例的服務(wù)名為MSSQLSERVER,而命名實(shí)例的服務(wù)名為MSSQL$INSTANCE_NAME掏愁。
在SQL Server服務(wù)器實(shí)例上歇由,可以創(chuàng)建多個(gè)數(shù)據(jù)庫卵牍,啟動(dòng)實(shí)例服務(wù)后,這些數(shù)據(jù)庫就都可以使用了沦泌,這是與Oracle數(shù)據(jù)庫的不同之處糊昙。
??一個(gè)Oracle Server由一個(gè)Oracle實(shí)例和一個(gè)Oracle數(shù)據(jù)庫組成,也即是Oracle的每個(gè)數(shù)據(jù)庫都對(duì)應(yīng)操作系統(tǒng)上一個(gè)單獨(dú)的服務(wù)谢谦,所以每個(gè)Oracle數(shù)據(jù)庫在操作之前都需要單獨(dú)啟動(dòng)释牺。
SQL Server 實(shí)例有兩種類型:
- (1)默認(rèn)實(shí)例:默認(rèn)實(shí)例僅由運(yùn)行該實(shí)例的計(jì)算機(jī)的名稱唯一標(biāo)識(shí),它沒有單獨(dú)的實(shí)例名回挽。如果應(yīng)用程序在請(qǐng)求連接 SQL Server 時(shí)只需要指定計(jì)算機(jī)名没咙,則 SQL Server 客戶端組件將嘗試連接這臺(tái)計(jì)算機(jī)上的數(shù)據(jù)庫引擎默認(rèn)實(shí)例。
??一臺(tái)計(jì)算機(jī)上最多只能有一個(gè)默認(rèn)實(shí)例千劈,也可以沒有默認(rèn)實(shí)例祭刚。如果要訪問本機(jī)上的默認(rèn)SQL服務(wù)器實(shí)例,使用計(jì)算機(jī)名队塘、(local)袁梗、localhost、127.0.0.1憔古、本機(jī)IP地址遮怜,都可以達(dá)到相同的目的。如下圖所示:
??默認(rèn)實(shí)例的服務(wù)名一般為MSSQLSERVER鸿市,可以到SQL Server配置管理器的服務(wù)中查看锯梁,如下圖所示:
- (2)命名實(shí)例:除默認(rèn)實(shí)例外的所有實(shí)例即為命名實(shí)例。對(duì)于不同實(shí)例下的數(shù)據(jù)庫的訪問焰情,使用<計(jì)算機(jī)名或ip地址\實(shí)例名稱>即可實(shí)現(xiàn)訪問陌凳,缺省實(shí)例使用<計(jì)算機(jī)名或ip地址>進(jìn)行訪問。
#查看數(shù)據(jù)庫服務(wù)器的機(jī)器名稱
1> select @@SERVERNAME
2> go
---------------------------------------------
DELL-PC
#查看數(shù)據(jù)庫的實(shí)例名稱内舟,如果是默認(rèn)實(shí)例名上述查詢結(jié)果就會(huì)返回null
1>select SERVERPROPERTY('InstanceName')
啟動(dòng)SQL Server客戶端工具
SQL Server的客戶端工具包括:
- sqlcmd合敦,SQL Server的字符界面管理工具。
- SQL Server Management Studio(SSMS)验游,是SQL Server圖形界面工具充岛。
Windows身份驗(yàn)證
①啟動(dòng)SQL Server的sqlcmd并連接到服務(wù)器
??如果連接本地服務(wù)器的默認(rèn)SQL Server實(shí)例,直接輸入以下命令即可:
C:\>sqlcmd -E
或
C:\>sqlcmd
能夠使用操作系統(tǒng)驗(yàn)證方式連接服務(wù)器的前提是當(dāng)前登錄Windows的賬號(hào)已經(jīng)被映射為SQL Server登錄賬號(hào)耕蝉,這種方式與SQL*Plus中以sys用戶的操作系統(tǒng)驗(yàn)證方式連接數(shù)據(jù)庫相同崔梗,即sqlplus / as sysdba。
②SSMS連接到服務(wù)器
SQL Server身份驗(yàn)證
①啟動(dòng)SQL Server的sqlcmd并連接到服務(wù)器
??如果要使用SQL Server驗(yàn)證方式連接服務(wù)器垒在,可以使用-U參數(shù)指定服務(wù)器登錄賬號(hào)名稱蒜魄,使用-P參數(shù)指定口令,如服務(wù)器登陸賬號(hào)名稱為login3,口令為login3login3谈为,則可以使用下面命令里連接到服務(wù)器旅挤。
C:\>sqlcmd -U login3 -P login3login3
如果要連接遠(yuǎn)程服務(wù)器,或本地服務(wù)器上的非默認(rèn)實(shí)例峦阁,則要使用-S參數(shù):
C:\>sqlcmd -S law\instance1 -U login3 -P login3login3
其中l(wèi)aw是服務(wù)器的機(jī)器名稱谦铃,instance1是非默認(rèn)實(shí)例的實(shí)例名稱。
??若省略-S參數(shù)榔昔,則默認(rèn)連接本地服務(wù)器的默認(rèn)實(shí)例驹闰,如果省略-E 或-U參數(shù),則默認(rèn)使用Windows驗(yàn)證方式連接服務(wù)器撒会。
②SSMS連接到服務(wù)器
??在安全性——>登錄名中可以看到所有的登陸賬號(hào)嘹朗。
??我們?cè)谶@些登錄名上單擊右鍵,就可以查看并修改它們的屬性诵肛。
數(shù)據(jù)庫的切換和查看
SQL Server服務(wù)器實(shí)例上可以創(chuàng)建多個(gè)數(shù)據(jù)庫屹培,連接到服務(wù)器后,可以隨時(shí)使用use命令切換數(shù)據(jù)庫怔檩,前提是當(dāng)前服務(wù)器登陸賬號(hào)已經(jīng)映射為這多個(gè)數(shù)據(jù)庫中的用戶褪秀,如下面命令所示:
C:\>sqlcmd
1> use DBForTest
2> go
已將數(shù)據(jù)庫上下文更改為 'DBForTest'。
查看當(dāng)前連接的數(shù)據(jù)庫名稱:
print db_name()
或
select db_name()
SQL執(zhí)行與顯示
1.設(shè)置客戶端界面每行容納的字符數(shù)
C:\>sqlcmd -w 300
2.修改執(zhí)行過的SQL命令以重新執(zhí)行
??可以使用上下方向鍵吧執(zhí)行過的命令回顯回來薛训,然后使用左右方向鍵移動(dòng)光標(biāo)到合適位置來修改特定的內(nèi)容媒吗。除此方法外,在sqlcmd中可以使用ed命令在編輯器中打開并修改執(zhí)行過的上一條SQL命令乙埃。前提是要設(shè)置sqlcmdeditor環(huán)境變量的值為notepad闸英。
C:\>set sqlcmdeditor = notepad
這個(gè)方法設(shè)置環(huán)境變量只能臨時(shí)生效,如果要永久生效介袜,則可以使用下面方法:右擊“我的電腦”甫何,在彈出菜單中選擇“屬性”。在屬性對(duì)話框中選擇“高級(jí)”遇伞,然后單擊“環(huán)境變量”按鈕辙喂,在“系統(tǒng)變量”部分單擊“新建”按鈕,在出現(xiàn)的對(duì)話框中的“變量名”中填入“sqlcmdeditoe”鸠珠,在“變量值”部分填入“notepad”加派。
??完成以上設(shè)置后,重啟cmd工具即可生效跳芳。
3.執(zhí)行SQL腳本文件
??sqlcmd連接服務(wù)器和數(shù)據(jù)庫后,使用:r執(zhí)行腳本文件:
:r c:\test.sql
4.查詢結(jié)果保存為文件
??可以在sqlcmd中使用:out命令指定輸出結(jié)果保存的文件名稱竹勉,從而避免把輸出結(jié)果顯示在當(dāng)前窗口中飞盆。然后使用type命令查看輸出文件中的結(jié)果。
1>:out c:\out.txt
1>select * from t
2>go
1>exit
C:\>type c:\out.txt
a b
---- -----
1 1
切換用戶
與SQL*Plus相似,在sqlcmd中也可以使用connect命令切換用戶吓歇,但是這里的connect關(guān)鍵字不能簡寫為conn孽水,另外要使用-U及-P參數(shù)分別指定服務(wù)器登陸賬號(hào)及其口令:
:connect DELL-PC -U login3 -P login2login2
其中DELL-PC是連接的數(shù)據(jù)庫服務(wù)器的機(jī)器名稱。
??如果使用操作系統(tǒng)驗(yàn)證城看,則不必附加賬號(hào)名稱及口令女气。
:connect DELL-PC
如果為默認(rèn)實(shí)例,則可以如同示例只輸入機(jī)器名稱DELL-PC测柠,如果是非默認(rèn)實(shí)例炼鞠,可以在機(jī)器名稱后面附加實(shí)例名稱,如DELL-PC\instance1轰胁。切換完成后谒主,SQL Server自動(dòng)關(guān)閉之前的用戶連接。
??要查詢當(dāng)前登陸賬號(hào)及數(shù)據(jù)庫用戶名稱赃阀,則可以分別使用下面命令:
#查詢當(dāng)前登陸賬號(hào)
print system_user
#查詢當(dāng)前數(shù)據(jù)庫用戶名稱
print user