首先,我說(shuō)的是在ACCESS2000,SQL2000之間轉(zhuǎn)換,其他的我也還沒(méi)有嘗試過(guò),希望大家多多試驗(yàn),肯定是有辦法的。
轉(zhuǎn)換的方法
1、打開(kāi)“控制面板”下“管理工具”中的“數(shù)據(jù)庫(kù)源”。
2、按”添加“添加一個(gè)新的數(shù)據(jù)源,在選擇欄里選“Driver do microsoft Access (*.mdb)”,完成后將出現(xiàn)一個(gè)框,在“數(shù)據(jù)庫(kù)源”里面輸入你想寫(xiě)的名稱(chēng),我取名叫“ABC”,說(shuō)明不需要填,接著,按下面的選擇,尋找你的數(shù)據(jù)庫(kù)地址和選中(注意,請(qǐng)先備份自己的ACCESS數(shù)據(jù)庫(kù)),然后確定。數(shù)據(jù)源在這里建好了,剩下轉(zhuǎn)換了。
3、打開(kāi)SQL2000企業(yè)管理器,進(jìn)入數(shù)據(jù)庫(kù),新建一個(gè)空的數(shù)據(jù)庫(kù)“ABC”。
4、選擇新建立的數(shù)據(jù)庫(kù),按鼠標(biāo)右鍵,選擇“所有任務(wù)”下“導(dǎo)入數(shù)據(jù)”,按“下一步”繼續(xù)。
5、在數(shù)據(jù)庫(kù)源下拉但中選擇”Driver do microsoft Access(*.mdb)“,在”用戶(hù)/系統(tǒng)DSN“中,選種你剛才添加的”ABC“,按 ”下一步“。
6、“目的”不需要修改,選擇服務(wù)器(一般下為自己的本機(jī)local,也可以選擇服務(wù)器地址或者局域網(wǎng)地址,確定你的權(quán)限是否可以操作,),使用WINDOWS 身份驗(yàn)證指用自己的系統(tǒng)管理員身份操作,使用SQL身份操作驗(yàn)證可以用于網(wǎng)站的操作,推薦用后者。
7、選上使用SQL身份操作驗(yàn)證后,填寫(xiě)你的用戶(hù)名和密碼,我自己選擇的是系統(tǒng)默認(rèn)號(hào)碼sa,****,數(shù)據(jù)庫(kù)選擇剛新建的ABC,按下一步。
8、這一步的兩個(gè)單項(xiàng)選擇,從數(shù)據(jù)源復(fù)制表和視圖與用一條查詢(xún)指令指定要傳輸?shù)臄?shù)據(jù),選擇前者,按下一步繼續(xù)。
9、這里將出現(xiàn)你自己ACCESS數(shù)據(jù)庫(kù)的表,按全選后,下一步。
10、DTS導(dǎo)入/導(dǎo)出向?qū)В戳⒓催\(yùn)行被選中按下一步。
11、按完成繼續(xù)。
12、這個(gè)步驟你將看到你的數(shù)據(jù)被導(dǎo)入SQL2000里面,當(dāng)出現(xiàn)已經(jīng)成功把XXX個(gè)表導(dǎo)入到數(shù)據(jù)庫(kù)的字樣,而且所有的表前面都有綠色的勾,就表示成功導(dǎo)入所有數(shù)據(jù),如果中途出現(xiàn)問(wèn)題或者表前面有紅色的叉的話(huà),說(shuō)明該表沒(méi)有成功導(dǎo)入,這時(shí)就要回去查看自己的操作是否正確了。
最近又在升級(jí)一個(gè)程序,使其支持多數(shù)據(jù)庫(kù)。
原來(lái)的程序數(shù)據(jù)庫(kù)為SQL Server,所以使用SQL Server 的“導(dǎo)入和導(dǎo)出數(shù)據(jù)”功能將一個(gè) SQL Server 數(shù)據(jù)庫(kù)轉(zhuǎn)換成了Access數(shù)據(jù)庫(kù),但其中發(fā)現(xiàn)了一些問(wèn)題,但也找到了解決方案,一并記錄于此:
1、轉(zhuǎn)換程序會(huì)將SQL Server的視圖轉(zhuǎn)換成表,而不是Access的查詢(xún);
2、在為字段設(shè)置默認(rèn)值為空字符的時(shí)候,SQL Server用”,而Access用”";
3、Access中沒(méi)有GetDate()函數(shù),應(yīng)該使用Now()函數(shù)代替;
4、Access沒(méi)有SQL Server用來(lái)獲取客戶(hù)端機(jī)器名的host_name()函數(shù);
5、Access中沒(méi)有Case When Then語(yǔ)句,但可以用IIF()函數(shù)模擬實(shí)現(xiàn)功能;
6、發(fā)現(xiàn):Access使用的是Visual Basic的語(yǔ)言結(jié)構(gòu)和函數(shù);
7、轉(zhuǎn)換程序會(huì)正確轉(zhuǎn)換SQL Server字段的 IS NULL 屬性;
8、Access也支持多字段的索引,只是設(shè)置方法有點(diǎn)特別(參見(jiàn)幫助);
9、SQL Server中bit型的1、0值,在Access中為T(mén)rue和False;
10、在Access中使用多個(gè)LEFT JOIN這樣的語(yǔ)句時(shí),必須用括號(hào)做相關(guān)的界定;
11、Access的SQL沒(méi)有注釋語(yǔ)句,SQL Server的/**/無(wú)法通用;
12、一條Insert語(yǔ)句在Access查詢(xún)中正常運(yùn)行,但在程序中出現(xiàn)“Insert Into 語(yǔ)句的語(yǔ)法錯(cuò)誤”,后來(lái)發(fā)現(xiàn)原來(lái)是語(yǔ)句中的一個(gè)列名是Access的關(guān)鍵字(用[]界定可解決問(wèn)題),但奇怪的是將該語(yǔ)句放置到Access的查詢(xún)中執(zhí)行卻不會(huì)出錯(cuò)。
需要對(duì)轉(zhuǎn)換后的Access數(shù)據(jù)庫(kù)進(jìn)行以下項(xiàng)目的檢查,以確保與SQL Server一致:
1、主鍵。轉(zhuǎn)換后的Access數(shù)據(jù)庫(kù)都沒(méi)有主鍵,需自己設(shè)置;
2、自增字段。轉(zhuǎn)換程序會(huì)將SQL Server的自增字段轉(zhuǎn)換為數(shù)字型,需手動(dòng)修改為Access的“自動(dòng)編號(hào)”類(lèi)型;
3、默認(rèn)值。轉(zhuǎn)換程序不會(huì)轉(zhuǎn)換SQL Server中設(shè)置的默認(rèn)值,需手動(dòng)設(shè)置;
4、bigint型字段。轉(zhuǎn)換程序會(huì)將SQL Server的bigint轉(zhuǎn)換為小數(shù),須手動(dòng)調(diào)整為Access的整型或長(zhǎng)整型;
5、索引。轉(zhuǎn)換程序不會(huì)轉(zhuǎn)換索引,需手動(dòng)在Access中建立索引。
在Delphi下,想讓程序同時(shí)支持Access及SQL Server,需注意以下方面:
1、在Access中使用 SELECT * FROM Books WHERE RegDate = ‘2007-5-1′ 是會(huì)出現(xiàn)“標(biāo)準(zhǔn)表達(dá)式中數(shù)據(jù)類(lèi)型不匹配”這樣的錯(cuò)誤的(RegDate是日期型),必須使用SELECT * FROM Books WHERE RegDate = #2007-5-1# 或 SELECT * FROM Books WHERE RegDate = CDate('2007-5-1′);
但在Access中,Insert、delete和update中使用單引號(hào)界定日期卻是可以正常執(zhí)行的。
2、盡量不要使用SQL Server的bigint類(lèi)型,尤其該字段是自增的情況下;
3、Access的varchar(文本)型最大只有255,所以如果一個(gè)文本型字段大于255時(shí),最好定義成備注型(Access中)或text型(SQL Server中);
4、在Access中一般會(huì)出現(xiàn)如下錯(cuò)誤:不正常地定義參數(shù)對(duì)象。提供了不一致或不完整的信息。將相應(yīng)Query的ParamCheck設(shè)為False即可;
5、Access中的邏輯值在庫(kù)中為-1和0,而SQL Server中為1和0,所以寫(xiě)B(tài)oolField = 1這樣的語(yǔ)句有兼容性問(wèn)題,應(yīng)該改為BoolField > 0;
6、在Access中有主鍵的Query才可更新,而SQL Server無(wú)此要求。
以上就是Access和SQL數(shù)據(jù)庫(kù)相互轉(zhuǎn)換的方法及注意事項(xiàng)。
您可能感興趣的文章:- 30 個(gè)很棒的PHP開(kāi)源CMS內(nèi)容管理系統(tǒng)小結(jié)
- SQLite數(shù)據(jù)庫(kù)管理系統(tǒng)-我所認(rèn)識(shí)的數(shù)據(jù)庫(kù)引擎
- Swift中的Access Control權(quán)限控制介紹
- php結(jié)合ACCESS的跨庫(kù)查詢(xún)功能
- C#通過(guò)oledb訪(fǎng)問(wèn)access數(shù)據(jù)庫(kù)的方法
- C#操作Access通用類(lèi)實(shí)例
- Apache服務(wù)器中.htaccess的基本配置總結(jié)
- mysql Access denied for user ‘root’@’localhost’ (using password: YES)解決方法
- Javascript連接Access數(shù)據(jù)庫(kù)完整實(shí)例
- SQL Server數(shù)據(jù)復(fù)制到的Access兩步走
- Access創(chuàng)建一個(gè)簡(jiǎn)單MIS管理系統(tǒng)