Access轉Sql Server問題

來源:互聯網
上載者:User

今天幫同學改一個老的系統作為畢業設計,這系統技術絕對落後asp+access。為了應付老師的驗收,然後這同學編程又不是很好,而其到了最後時刻才想到開始做畢設,於是找到了我。

我看了他不知從哪裡搞來的代碼,跑了下,還行能跑,過兩天就要驗收程式了,把asp改成 asp.net是沒時間了,於是我提議改下資料庫算了,於是決定把access轉成sql server。看似一個公司的產品,轉起來問題到一大堆。現總結如下,

先說怎麼轉移資料,開啟sqlserver的企業管理器,建立張表,然後右擊那張表,點匯入資料,然後選中資料來源(我這裡就是access的mdb檔案),一路next,基本沒什麼問題,資料就這樣導好了,但問題沒那麼簡單,sql server和access的機制有很大的不同

1,由於SQL2000裡面沒有自動編號,所以你的以自動編號設定的欄位都會變成非空的欄位,這就必須手工修改這些欄位,並把他的標示選擇是,種子為1,增量為1,

2,另外,ACCESS2000轉換成SQL2000後,原來屬性為是/否的欄位將被轉換成非空的bit,這時候你必須修改成自己想要的屬性了;

3,另外,大家要注意對時間函數的把握.ACCESS與SQL是有很多不同的.

 

ACCESS轉MS SQL資料庫的幾點經驗

1.ACCESS的資料庫中的自動編號類型在轉化時,sql server並沒有將它設為自動編號型,我們需在SQL建立語句中加上identity,表示自動編號!

2.轉化時,跟日期有關的欄位,SQL SERVER預設為smalldatetime型,我們最好將它變為datetime型,因為datetime型的範圍比smalldatetime型大。我遇見這種情況,用smalldatetime型時,轉化失敗,而用datetime型時,轉化成功。

3.對此兩種資料庫進行操作的sql語句不全相同,例如:在對ACCESS資料庫進行刪除紀錄時用:delete * from user where id=10,而對SQL SERVER資料庫進行刪除是用:delete user where id=10.

4.日期函數不相同,在對ACCESS資料庫處理中,可用date()、time()等函數,但對SQL SERVER資料庫處理中,只能用datediff,dateadd等函數,而不能用date()、time()等函數。

5.在對ACCESS資料庫處理中,sql語句中直接可以用一些VB的函數,像cstr()函數,而對SQL SERVER資料庫處理中,卻不能用。

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.