[英]Copy access database to SQL server periodically
我有一個Access 2003數據庫,其中包含我的所有業務數據。 該訪問數據庫在一天中每隔幾個小時更新一次。
我們當前正在編寫一個網站,該網站將需要使用訪問數據庫中的數據。 該網站(暫時)將僅具有只讀功能。 這意味着只需要一種方式進行數據傳輸(訪問-> SQL)。
我正在想像有一種方法可以通過編程方式從訪問SQL Server進行數據遷移。 有沒有人鏈接到我可以閱讀的內容?
如果這種做法聽起來很奇怪,並且您想提出另一種方法(或者數據可以同時雙向訪問(Access-> SQL,SQL-> Access)的情況),那很好。
該公司將繼續使用Access 2003來實現其業務功能。 沒有辦法解決。 但是我想在SQL Server之上構建(只讀)網站。
要進行初始數據遷移並自動設置SQL Server,我將使用SQL Server Migration Assistant 。 您絕對可以更改的唯一可以想到的就是關閉具有該屬性的任何列上的Identity屬性-下文將對此進行說明(MS Access調用Identity自動編號)。 裝入表后,可以建立與剛剛創建的數據庫(和表)的dsnless連接 。
我沒有使用僅鏈接的方法,但是我相信它允許您使用SQL Server身份驗證連接到數據庫。 使用此方法的好處是您可以輕松更改要連接到哪個SQL Server實例和/或數據庫以進行開發和測試。
可能有一種更好的自動化方法,但是您可以創建多個插入查詢,以執行從Access表的主鍵到SQL Server表的左聯接,並放置一個WHERE
子句以指定SQL Server PrimaryKey必須為null。 這就是為什么您需要在SQL Server表中關閉Identity屬性,以便可以插入新數據的原因。
最后,將每個查詢的名稱放在一個函數中,然后定期運行該函數。
我已經使用了Microsoft的免費SQL Server遷移助手(SSMA)將Access遷移到SQL Server。 該工具使用非常簡單。 我使用該工具遇到的唯一問題是遷移時數據類型過載。 我的意思是,在某些情況下,一個小字符串將轉換為NVARCHAR(MAX)
。 否則,該工具非常方便,可以在設置“配置文件”后重新使用。
您概述的策略可能非常具有挑戰性。 您可以使用INSERT
查詢將新的Access行復制到SQL Server,如另一個答案中所述。
但是,如果對現有的Access行進行了更改,並且還希望將這些更改傳播到SQL Server,它將不會那么簡單。 如果您還想從SQL Server刪除Access行,那將仍然更加復雜。
對我來說,使用其他方法似乎更合理。 一次將數據遷移到SQL Server。 然后,用到SQL Server表的ODBC鏈接替換Access數據庫中的表。 之后,從Access應用程序中對數據進行的更改將不需要單獨的同步步驟...它們已經在SQL Server中。 而且您無需編寫任何代碼即可同步它們。
如果您擔心Web服務器和SQL Server之間的連接是只讀的,只需以這種方式進行設置即可。 您仍然可以獨立地允許Access應用程序具有讀寫權限。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.