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