程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> Access數據庫 >> Access數據庫入門 >> 將使用Access的論壇遷移到SqLServer中

將使用Access的論壇遷移到SqLServer中

編輯:Access數據庫入門

  利用動網提供的論壇程序創建了一個內部論壇。原來,這個論壇是發布在windows2000的IIS5上的。他的數據庫用的是Access。可是,當我將這個論壇遷移到windows2003上以後,發現經常死掉。到網上找了一下,並且咨詢了微軟的工程師,很多人都認為i這跟他使用Access有關。並且,我想在公司內部網站首頁增加一個跑馬燈來顯示論壇中的新帖子,可是,如果繼續用Access的話,訪問起來不是那麼方便。於是決定遷移到SQl中。

  第一步:將數據導入SQL Server

  進到SQL Server企業管理器,新建一個數據庫,然後,選擇導入數據,選擇Access數據庫作為導入源,導入所有的數據。
第二步:修改數據表

  通過這種方式建立的數據表,是沒有主鍵和默認值的,參照原來的Access庫修改各個表。(這個比較煩,但是一定得做,因為後面的程序中會用到這些默認值)

  第三步:修改程序

  將站點遷移到相應的服務器,創建新的站點。首先,要改的就是數據庫聯接.由於Access中的一些函數和SqL中的一些函數不一樣,所以,程序會報錯,根據程序的報錯信息修改相關的地方。這裡主要要修改兩個地方:

  SqL語句中的Now()函數:

  在Access中使用Now()函數來獲取當前時間,而在SQL Server中用Getdate()函數來獲取當前時間。但是,由於原來的程序是采用vb Script寫的,VbScript中也采用Now()函數獲取當前時間,所以要小心Sql語句中的Datediff函數的第一個參數:

  在Access中DateDiff的第一個參數用引號,並且只用一個字母來表示比較的部分,而在SqLServer中不需要引號,並且用全稱和或者簡稱來表示,並且簡稱也是兩個字母的。

  改完後逐項測試,改正所有的錯誤(都挺簡單的)。

  程序就可以正常使用了,前後時間可能花了4個多小時吧。

  我想到以下幾點:

     1、如果,我們要使用Access數據庫,為了以後遷移方便,我們應該盡量避免使用數據庫的函數,而是多用程序語言的函數,在SQL語句的外面解決計算問題。如果,不能避免要使用這些數據庫函數,我們也應該在代碼中設置明顯的注釋標記,以便於以後遷移。

    2、我們在設計程序時候,要充分考慮數據庫的遷移的需要,在插入語句、查詢語句等語句的時候要盡量采用標准的SqL語法,並且要不厭其煩得插入默認值,而不要依賴數據庫提供默認值,這樣做,對以後的改進可能會有好處。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved