文章詳情頁(yè)
Access轉(zhuǎn)Sql Server問(wèn)題 實(shí)例說(shuō)明
瀏覽:124日期:2023-03-18 16:41:48
今天幫同學(xué)改一個(gè)老的系統(tǒng)作為畢業(yè)設(shè)計(jì),這系統(tǒng)技術(shù)絕對(duì)落后asp+access。為了應(yīng)付老師的驗(yàn)收,然后這同學(xué)編程又不是很好,而其到了最后時(shí)刻才想到開(kāi)始做畢設(shè),于是找到了我。
我看了他不知從哪里搞來(lái)的代碼,跑了下,還行能跑,過(guò)兩天就要驗(yàn)收程序了,把a(bǔ)sp改成 asp.net是沒(méi)時(shí)間了,于是我提議改下數(shù)據(jù)庫(kù)算了,于是決定把a(bǔ)ccess轉(zhuǎn)成sql server。看似一個(gè)公司的產(chǎn)品,轉(zhuǎn)起來(lái)問(wèn)題到一大堆。現(xiàn)總結(jié)如下,
先說(shuō)怎么轉(zhuǎn)移數(shù)據(jù),打開(kāi)sqlserver的企業(yè)管理器,建立張表,然后右擊那張表,點(diǎn)導(dǎo)入數(shù)據(jù),然后選中數(shù)據(jù)源(我這里就是access的mdb文件),一路next,基本沒(méi)什么問(wèn)題,數(shù)據(jù)就這樣導(dǎo)好了,但問(wèn)題沒(méi)那么簡(jiǎn)單,sql server和access的機(jī)制有很大的不同
1,由于SQL2000里面沒(méi)有自動(dòng)編號(hào),所以你的以自動(dòng)編號(hào)設(shè)置的字段都會(huì)變成非空的字段,這就必須手工修改這些字段,并把他的標(biāo)示選擇是,種子為1,增量為1,
2,另外,ACCESS2000轉(zhuǎn)換成SQL2000后,原來(lái)屬性為是/否的字段將被轉(zhuǎn)換成非空的bit,這時(shí)候你必須修改成自己想要的屬性了;
3,另外,大家要注意對(duì)時(shí)間函數(shù)的把握.ACCESS與SQL是有很多不同的.
ACCESS轉(zhuǎn)MS SQL數(shù)據(jù)庫(kù)的幾點(diǎn)經(jīng)驗(yàn)
1.ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類(lèi)型在轉(zhuǎn)化時(shí),sql server并沒(méi)有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語(yǔ)句中加上identity,表示自動(dòng)編號(hào)!
2.轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。我遇見(jiàn)這種情況,用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
3.對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語(yǔ)句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:delete * from user where id=10,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:delete user where id=10.
4.日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
5.在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語(yǔ)句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
我看了他不知從哪里搞來(lái)的代碼,跑了下,還行能跑,過(guò)兩天就要驗(yàn)收程序了,把a(bǔ)sp改成 asp.net是沒(méi)時(shí)間了,于是我提議改下數(shù)據(jù)庫(kù)算了,于是決定把a(bǔ)ccess轉(zhuǎn)成sql server。看似一個(gè)公司的產(chǎn)品,轉(zhuǎn)起來(lái)問(wèn)題到一大堆。現(xiàn)總結(jié)如下,
先說(shuō)怎么轉(zhuǎn)移數(shù)據(jù),打開(kāi)sqlserver的企業(yè)管理器,建立張表,然后右擊那張表,點(diǎn)導(dǎo)入數(shù)據(jù),然后選中數(shù)據(jù)源(我這里就是access的mdb文件),一路next,基本沒(méi)什么問(wèn)題,數(shù)據(jù)就這樣導(dǎo)好了,但問(wèn)題沒(méi)那么簡(jiǎn)單,sql server和access的機(jī)制有很大的不同
1,由于SQL2000里面沒(méi)有自動(dòng)編號(hào),所以你的以自動(dòng)編號(hào)設(shè)置的字段都會(huì)變成非空的字段,這就必須手工修改這些字段,并把他的標(biāo)示選擇是,種子為1,增量為1,
2,另外,ACCESS2000轉(zhuǎn)換成SQL2000后,原來(lái)屬性為是/否的字段將被轉(zhuǎn)換成非空的bit,這時(shí)候你必須修改成自己想要的屬性了;
3,另外,大家要注意對(duì)時(shí)間函數(shù)的把握.ACCESS與SQL是有很多不同的.
ACCESS轉(zhuǎn)MS SQL數(shù)據(jù)庫(kù)的幾點(diǎn)經(jīng)驗(yàn)
1.ACCESS的數(shù)據(jù)庫(kù)中的自動(dòng)編號(hào)類(lèi)型在轉(zhuǎn)化時(shí),sql server并沒(méi)有將它設(shè)為自動(dòng)編號(hào)型,我們需在SQL創(chuàng)建語(yǔ)句中加上identity,表示自動(dòng)編號(hào)!
2.轉(zhuǎn)化時(shí),跟日期有關(guān)的字段,SQL SERVER默認(rèn)為smalldatetime型,我們最好將它變?yōu)閐atetime型,因?yàn)閐atetime型的范圍比smalldatetime型大。我遇見(jiàn)這種情況,用smalldatetime型時(shí),轉(zhuǎn)化失敗,而用datetime型時(shí),轉(zhuǎn)化成功。
3.對(duì)此兩種數(shù)據(jù)庫(kù)進(jìn)行操作的sql語(yǔ)句不全相同,例如:在對(duì)ACCESS數(shù)據(jù)庫(kù)進(jìn)行刪除紀(jì)錄時(shí)用:delete * from user where id=10,而對(duì)SQL SERVER數(shù)據(jù)庫(kù)進(jìn)行刪除是用:delete user where id=10.
4.日期函數(shù)不相同,在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,可用date()、time()等函數(shù),但對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,只能用datediff,dateadd等函數(shù),而不能用date()、time()等函數(shù)。
5.在對(duì)ACCESS數(shù)據(jù)庫(kù)處理中,sql語(yǔ)句中直接可以用一些VB的函數(shù),像cstr()函數(shù),而對(duì)SQL SERVER數(shù)據(jù)庫(kù)處理中,卻不能用。
標(biāo)簽:
Access
相關(guān)文章:
1. mysql-bin.000001文件的來(lái)源及處理方法2. 啟動(dòng)MYSQL出錯(cuò) Manager of pid-file quit without updating file.3. 如何手動(dòng)刪除 SQL Server 2000 默認(rèn)實(shí)例、命名實(shí)例或虛擬實(shí)例4. MySQL MGR 有哪些優(yōu)點(diǎn)5. Access數(shù)據(jù)庫(kù)安全的幾個(gè)問(wèn)題6. MySQL性能優(yōu)化之一條SQL在MySQL中執(zhí)行的過(guò)程詳解7. MySQL實(shí)現(xiàn)數(shù)據(jù)批量更新功能詳解8. 數(shù)據(jù)庫(kù)相關(guān)的幾個(gè)技能:ACCESS轉(zhuǎn)SQL9. 如何安裝MySQL 壓縮包10. 如何遠(yuǎn)程調(diào)用ACCESS數(shù)據(jù)庫(kù)
排行榜
