首先檢查SQL數(shù)據(jù)庫(kù)服務(wù)器中是否允許遠(yuǎn)程鏈接。其具體操作如下:
成都創(chuàng)新互聯(lián)主要從事網(wǎng)站建設(shè)、網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)饒陽(yáng),10多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來(lái)電咨詢建站服務(wù):18982081108
(1)右擊SQL Server 2008選項(xiàng),選擇SQL Server 2008 Management Studio:
(2)打開(kāi)“服務(wù)器屬性(Server Properties)” (右鍵連接名稱-屬性)
選擇“允許用戶對(duì)該服務(wù)器進(jìn)行遠(yuǎn)程鏈接”選項(xiàng)后,檢查是否問(wèn)題已經(jīng)排除。如果遠(yuǎn)程鏈接已經(jīng)成功,該過(guò)程已經(jīng)完成。若用戶發(fā)現(xiàn)“提醒錯(cuò)誤對(duì)話框”依然彈出,那么還需要做的是:
(二)檢查SQL網(wǎng)絡(luò)鏈接配置。其具體操作如下:
打開(kāi)“SQL服務(wù)器配置管理”選項(xiàng)打開(kāi)“該節(jié)點(diǎn)的SQL服務(wù)器網(wǎng)絡(luò)配置選項(xiàng)”選擇“微軟SQL 服務(wù)器網(wǎng)絡(luò)協(xié)議”選項(xiàng)(或用戶的SQL服務(wù)器中為SQL服務(wù)器配置網(wǎng)絡(luò)協(xié)議的選項(xiàng),不同版本的SQL名稱可能不同):
設(shè)置完成后重啟sql服務(wù)(net stop mssqlserver net start mssqlserver)
確定“微軟SQL服務(wù)器網(wǎng)絡(luò)選項(xiàng)協(xié)議”中的TCP/IP協(xié)議對(duì)服務(wù)器來(lái)說(shuō)是有效的。再次檢查是否已經(jīng)可以執(zhí)行遠(yuǎn)程鏈接。若“錯(cuò)誤提醒對(duì)話框”依然彈出,需要進(jìn)一步檢查SQL服務(wù)器防火墻選項(xiàng)。
(三)檢查SQL服務(wù)器防火墻設(shè)置 (快捷步驟-直接關(guān)閉防火墻(不安全))
如
果在進(jìn)行完上兩步操作后,用戶端計(jì)算機(jī)仍然無(wú)法遠(yuǎn)程鏈接到SQL服務(wù)器,用戶需要做的是對(duì)SQL服務(wù)器防火墻進(jìn)行重新配置。在進(jìn)行這一步操作時(shí),首先找到
SQL服務(wù)器上那個(gè)端口支持TCP/IP協(xié)議。用戶可以在SQL服務(wù)器防火墻已經(jīng)處于運(yùn)行狀態(tài)下,點(diǎn)擊“TCP/IP協(xié)議”選擇“屬性”:
從
上圖中可以看出,這臺(tái)SQL服務(wù)器上支持TCP/IP協(xié)議的是1433端口。下一步要做的是在防火墻的配置中允許1433端口支持TCP/IP協(xié)議
即可。如果服務(wù)器上運(yùn)行的是Windows
7操作系統(tǒng),其配置步驟為(其他微軟操作系統(tǒng)的做法類似),打開(kāi)“控制面板”選擇“Windows防火墻”選項(xiàng):
選擇“高級(jí)設(shè)置”后,在右邊菜單欄中找出“具有高級(jí)安全選項(xiàng)的Windows防火墻”并將其打開(kāi)。打開(kāi)后會(huì)發(fā)現(xiàn)在左邊菜單欄中有“入站規(guī)則(Inboud Rules)”選項(xiàng)。將該選項(xiàng)打開(kāi),并在右邊菜單欄中選擇“新建規(guī)則(New Rule)”選項(xiàng):
打開(kāi)“新建規(guī)則”選項(xiàng)后,利用“新內(nèi)置綁定規(guī)則向?qū)А睘?433端口配置“內(nèi)部綁定協(xié)議”配置為適用于TCP/IP協(xié)議即可。(前提是,需要完成該步驟以前所述的所有步驟),根據(jù)下面的幾幅圖為1433端口配置適用于1433端口即可:
以上全部都沒(méi)問(wèn)題了之后打開(kāi)SQL2008,輸入遠(yuǎn)程服務(wù)器名或IP、登錄名及密碼就可以連接到遠(yuǎn)程服務(wù)器上了。
使用Startup命令。
STARTUP參數(shù)說(shuō)明:
1.不裝入數(shù)據(jù)庫(kù)而啟動(dòng)實(shí)例,一般是在數(shù)據(jù)庫(kù)才創(chuàng)建時(shí)才可以這樣做:
STARTUP NOMOUNT
2.啟動(dòng)實(shí)例并裝入數(shù)據(jù)庫(kù) 但不打開(kāi)數(shù)據(jù)庫(kù),允許用戶執(zhí)行特定的維護(hù)操作。例如:
重命名數(shù)據(jù)文件;
添加、撤消或重命名重做日志文件;
啟動(dòng)和禁止重做日志歸檔;
執(zhí)行全部的數(shù)據(jù)庫(kù)恢復(fù)。
STARTUP MOUNT
3.啟動(dòng)實(shí)例裝入數(shù)據(jù)庫(kù)并打開(kāi)數(shù)據(jù)庫(kù)
正常情況是一個(gè)實(shí)例被啟動(dòng),數(shù)據(jù)庫(kù)裝入并打開(kāi)。這種模式允許任何有效用戶連接到數(shù)據(jù)庫(kù)并執(zhí)行典型的數(shù)據(jù)庫(kù)訪問(wèn)操作。
STARTUP[OPEN]
4.限制在啟動(dòng)時(shí)對(duì)數(shù)據(jù)庫(kù)的訪問(wèn)
用戶可以在嚴(yán)格的模式下啟動(dòng)實(shí)例并裝入數(shù)據(jù)庫(kù),這樣的模式只允許DBA做以下的工作:
執(zhí)行結(jié)構(gòu)維護(hù),如重建索引;
執(zhí)行數(shù)據(jù)庫(kù)文件的導(dǎo)入導(dǎo)出;
執(zhí)行數(shù)據(jù)裝載;
臨時(shí)阻止典型用戶使用數(shù)據(jù)
STARTUP RESTRICT
5.強(qiáng)制實(shí)例啟動(dòng)
可以用下面命令來(lái)強(qiáng)行啟動(dòng)實(shí)例,如果一個(gè)實(shí)例正在啟動(dòng),則STARTUP FORCE 重新啟動(dòng)。
STARTUP FORCE;
6.啟動(dòng)一個(gè)實(shí)例,裝入數(shù)據(jù)庫(kù),并啟動(dòng)全部的介質(zhì)恢復(fù)
如果用戶要求介質(zhì)恢復(fù),可以啟動(dòng)一個(gè)實(shí)例,裝入指向?qū)嵗臄?shù)據(jù)庫(kù),并自動(dòng)地啟動(dòng)恢復(fù)程序。
STARTUP OPEN RECOVER;
7.啟動(dòng)獨(dú)占或并行模式
如果用戶的ORACLE服務(wù)器允許多個(gè)實(shí)例來(lái)并發(fā)的訪問(wèn)一個(gè)數(shù)據(jù)庫(kù)(Oracle 并行服務(wù)器選項(xiàng)),應(yīng)選擇獨(dú)占或并行裝入數(shù)據(jù)庫(kù)。例如:
STARTUP OPEN sale PFILE=initsale.ora PARALLEL;
如果用戶指定獨(dú)占(缺省),那么數(shù)據(jù)庫(kù)只能由當(dāng)前的實(shí)例裝入并打開(kāi)。下面是一個(gè)獨(dú)占的模式的實(shí)例:
STRARTUP OPEN sales PFILE=initsales.ora EXECLUSIVE RESTRICT
另外:
STARTUP [FORCE] [RESTRICT] [PFILE= filename] [OPEN [RECOVER][ database] | MOUNT | NOMOUNT]
STARTUP OPEN:STARTUP缺省的參數(shù)就是OPEN,打開(kāi)數(shù)據(jù)庫(kù),允許數(shù)據(jù)庫(kù)的訪問(wèn)。當(dāng)前實(shí)例的控制文件中所描述的所有文件都已經(jīng)打開(kāi)。
STARTUP MOUNT:MOUNT數(shù)據(jù)庫(kù),僅僅給DBA進(jìn)行管理操作,不允許數(shù)據(jù)庫(kù)的用戶訪問(wèn)。僅僅只是當(dāng)前實(shí)例的控制文件被打開(kāi),數(shù)據(jù)文件未打開(kāi)。
STARTUP NOMOUNT:僅僅通過(guò)初始化文件,分配出SGA區(qū),啟動(dòng)數(shù)據(jù)庫(kù)后臺(tái)進(jìn)程,沒(méi)有打開(kāi)控制文件和數(shù)據(jù)文件。不能任何訪問(wèn)數(shù)據(jù)庫(kù)。
STARTUP PFILE= filename:以filename為初始化文件啟動(dòng)數(shù)據(jù)庫(kù),不是采用缺省初始化文件。
STARTUP FORCE:中止當(dāng)前數(shù)據(jù)庫(kù)的運(yùn)行,并開(kāi)始重新正常的啟動(dòng)數(shù)據(jù)庫(kù)。
STARTUP RESTRICT:只允許具有RESTRICTED SESSION權(quán)限的用戶訪問(wèn)數(shù)據(jù)庫(kù)。
STARTUP RECOVER:數(shù)據(jù)庫(kù)啟動(dòng),并開(kāi)始介質(zhì)恢復(fù)。
SHUTDOWN參數(shù)說(shuō)明:
SHUTDOWN有四個(gè)參數(shù):NORMAL、TRANSACTIONAL、IMMEDIATE、ABORT。缺省不帶任何參數(shù)時(shí)表示是NORMAL。
SHUTDOWN NORMAL:不允許新的連接、等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。
SHUTDOWN TRANSACTIONAL:不允許新的連接、不等待會(huì)話結(jié)束、等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。
SHUTDOWN IMMEDIATE:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、做一個(gè)檢查點(diǎn)并關(guān)閉數(shù)據(jù)文件。沒(méi)有結(jié)束的事務(wù)是自動(dòng)rollback的。啟動(dòng)時(shí)不需要實(shí)例恢復(fù)。
SHUTDOWN ABORT:不允許新的連接、不等待會(huì)話結(jié)束、不等待事務(wù)結(jié)束、不做檢查點(diǎn)且沒(méi)有關(guān)閉數(shù)據(jù)文件。啟動(dòng)時(shí)自動(dòng)進(jìn)行實(shí)例恢復(fù)。
另外,對(duì)于NORMAL、TRANSACTIONAL、IMMEDIATE,DB Buffer Cache的內(nèi)容寫(xiě)入了數(shù)據(jù)文件,沒(méi)有提交的事務(wù)被回滾,所有的資源被釋放,數(shù)據(jù)庫(kù)被“干凈”的關(guān)閉。
對(duì)于ABORT,DB Buffer Cache的內(nèi)容沒(méi)有寫(xiě)入數(shù)據(jù)文件,沒(méi)有提交的事務(wù)也沒(méi)有回滾。數(shù)據(jù)庫(kù)沒(méi)有ismount和關(guān)閉,數(shù)據(jù)文件也沒(méi)有關(guān)閉。當(dāng)數(shù)據(jù)庫(kù)啟動(dòng)時(shí),需要通過(guò)redo log恢復(fù)數(shù)據(jù),通過(guò)回滾段對(duì)事務(wù)回滾,對(duì)資源進(jìn)行釋放。
系參考網(wǎng)絡(luò)文章
目前市場(chǎng)上很多考勤機(jī)配套考勤軟件都是用ACCESS數(shù)據(jù)庫(kù),專業(yè)版的考勤系統(tǒng)軟件一般都是用SQL數(shù)據(jù)庫(kù),連接sqlserver2000數(shù)據(jù)庫(kù)其實(shí)也很簡(jiǎn)單,以下以全易通考勤軟件連接sqlserver2000數(shù)據(jù)庫(kù)作為實(shí)例進(jìn)行說(shuō)明。
1、先安裝好sqlserver2000數(shù)據(jù)庫(kù),安裝好后,啟動(dòng)一下SQL服務(wù)器
2、再安裝好考勤軟件,找到考勤軟件"創(chuàng)建或連接數(shù)據(jù)庫(kù)“菜單,再點(diǎn)創(chuàng)建數(shù)據(jù)庫(kù),這時(shí)考勤軟件就會(huì)提示:操作成功!
3、如果考勤軟件提示:SQL2000不存在或拒絕訪問(wèn),這說(shuō)明SQL200數(shù)據(jù)庫(kù)沒(méi)有安裝好,或SQL服務(wù)器沒(méi)有啟動(dòng)。
以sqlserver2008R2為例。
1、打開(kāi)sql2008,使用windows身份登錄
2、登錄后,右鍵選擇“屬性”。左側(cè)選擇“安全性”,選中右側(cè)的“SQL Server 和 Windows 身份驗(yàn)證模式”以啟用混合登錄模式
3、選擇“連接”,勾選“允許遠(yuǎn)程連接此服務(wù)器”,然后點(diǎn)“確定”
4、展開(kāi)“安全性”,“登錄名”;“sa”,右鍵選擇“屬性”
5、左側(cè)選擇“常規(guī)”,右側(cè)選擇“SQL Server 身份驗(yàn)證”,并設(shè)置密碼
6、右擊數(shù)據(jù)庫(kù)選擇“方面”
7、在右側(cè)的方面下拉框中選擇“服務(wù)器配置”;將“RemoteAccessEnabled”屬性設(shè)為“True”,點(diǎn)“確定”
8、至此SSMS已設(shè)置完畢,先退出,再用sa登錄,成功即表示sa帳戶已經(jīng)啟用
9、打開(kāi)sql server配置管理器
10、下面開(kāi)始配置SSCM,選中左側(cè)的“SQL Server服務(wù)”,確保右側(cè)的“SQL Server”以及“SQL Server Browser”正在運(yùn)行
11、在左則選擇sql server網(wǎng)絡(luò)配置節(jié)點(diǎn)下的sqlexpress的協(xié)議,在右側(cè)的TCP/IP默認(rèn)是“否”,右鍵啟用或者雙擊打開(kāi)設(shè)置面板將其修改為“是”
12、選擇“IP 地址”選項(xiàng)卡,設(shè)置TCP的端口為“1433”
13、將"客戶端協(xié)議"的"TCP/IP"也修改為“Enabled”
配置完成,重新啟動(dòng)SQL Server 2008。此時(shí)應(yīng)該可以使用了,但是還是要確認(rèn)一下防火墻。打開(kāi)防火墻設(shè)置。將SQLServr.exe(C:\Program Files\Microsoft SQL Server\MSSQL10.SQLEXPRESS\MSSQL\Binn\sqlservr.exe)添加到允許的列表中。
SQL的四種連接-左外連接、右外連接、內(nèi)連接、全連接
今天在看一個(gè)遺留系統(tǒng)的數(shù)據(jù)表的時(shí)候發(fā)現(xiàn)平時(shí)查找的視圖是FULL OUT JOIN的,導(dǎo)致平時(shí)的數(shù)據(jù)記錄要進(jìn)行一些限制性處理,其實(shí)也可以設(shè)置視圖各表為右外連接并在視圖上設(shè)置各列的排序和篩選條件就可以達(dá)到效果。
聯(lián)接條件可在FROM或WHERE子句中指定,建議在FROM子句中指定聯(lián)接條件。WHERE和HAVING子句也可以包含搜索條件,以進(jìn)一步篩選聯(lián)接條件所選的行。
聯(lián)接可分為以下幾類:
1、內(nèi)聯(lián)接(典型的聯(lián)接運(yùn)算,使用像 = 或 之類的比較運(yùn)算符)。包括相等聯(lián)接和自然聯(lián)接。
內(nèi)聯(lián)接使用比較運(yùn)算符根據(jù)每個(gè)表共有的列的值匹配兩個(gè)表中的行。例如,檢索 students和courses表中學(xué)生標(biāo)識(shí)號(hào)相同的所有行。
2、外聯(lián)接。外聯(lián)接可以是左向外聯(lián)接、右向外聯(lián)接或完整外部聯(lián)接。
在 FROM子句中指定外聯(lián)接時(shí),可以由下列幾組關(guān)鍵字中的一組指定:
1)LEFT JOIN或LEFT OUTER JOIN
左向外聯(lián)接的結(jié)果集包括 LEFT OUTER子句中指定的左表的所有行,而不僅僅是聯(lián)接列所匹配的行。如果左表的某行在右表中沒(méi)有匹配行,則在相關(guān)聯(lián)的結(jié)果集行中右表的所有選擇列表列均為空值。
2)RIGHT JOIN 或 RIGHT OUTER JOIN
右向外聯(lián)接是左向外聯(lián)接的反向聯(lián)接。將返回右表的所有行。如果右表的某行在左表中沒(méi)有匹配行,則將為左表返回空值。
3)FULL JOIN 或 FULL OUTER JOIN
完整外部聯(lián)接返回左表和右表中的所有行。當(dāng)某行在另一個(gè)表中沒(méi)有匹配行時(shí),則另一個(gè)表的選擇列表列包含空值。如果表之間有匹配行,則整個(gè)結(jié)果集行包含基表的數(shù)據(jù)值。
3、交叉聯(lián)接
交叉聯(lián)接返回左表中的所有行,左表中的每一行與右表中的所有行組合。交叉聯(lián)接也稱作笛卡爾積。
FROM 子句中的表或視圖可通過(guò)內(nèi)聯(lián)接或完整外部聯(lián)接按任意順序指定;但是,用左或右向外聯(lián)接指定表或視圖時(shí),表或視圖的順序很重要。有關(guān)使用左或右向外聯(lián)接排列表的更多信息,請(qǐng)參見(jiàn)使用外聯(lián)接。
例子:
-------------------------------------------------
a表 id name b表 id job parent_id
1 張3 1 23 1
2 李四 2 34 2
3 王武 3 34 4
a.id同parent_id 存在關(guān)系
--------------------------------------------------
1) 內(nèi)連接
select a.*,b.* from a inner join b on a.id=b.parent_id
結(jié)果是
1 張3 1 23 1
2 李四 2 34 2
2)左連接
select a.*,b.* from a left join b on a.id=b.parent_id
結(jié)果是
1 張3 1 23 1
2 李四 2 34 2
3 王武 null
3) 右連接
select a.*,b.* from a right join b on a.id=b.parent_id
結(jié)果是
1 張3 1 23 1
2 李四 2 34 2
null 3 34 4
4) 完全連接
select a.*,b.* from a full join b on a.id=b.parent_id
結(jié)果是
1 張3 1 23 1
2 李四 2 34 2
null 3 34 4
3 王武 null