[英]Upsizing a split Access database
我需要升級拆分的 Access 數據庫,即當前拆分為兩個 mdb 文件、前端和后端的數據庫。 我看到很多網頁實質上都說“運行升遷向導”。 我的第一個非常基本的問題:
我應該在前端 mdb 還是后端 mdb 中運行此向導?
我假設我不想鏈接主 mdb -> 后端 mdb -> sql server。 我應該在后端 mdb 上運行向導,然后在前端 mdb 中將鏈接表更改為指向 sql server 而不是后端 mdb? 如果是這樣,這是如何完成的? 當我右鍵單擊並進入前端表(鏈接到后端 md)的鏈接表管理器時,它似乎只讓我選擇一個新的 mdb 文件。
我同意您的第一個猜測:您將希望在后端 mdb 上運行向導。
一旦它在 SQL Server 中,正如您所猜測的那樣,您將需要鏈接前端以使用 SQL Server 數據。 一種方法是為新的 SQL Server 數據庫設置 ODBC 數據源,並在鏈接表管理器中選擇該數據源。
設置數據源后,獲取外部數據應該會提供選擇它作為源的選項。 (在 2007 年,您可以從外部數據功能區到達那里。ODBC 數據源在更多下可用。)
根據馬特的后續問題進一步擴展:
你怎么做是一個設計選擇。 我建議擴大后端 mdb 的大小,因為這將允許您保留 Access 中的任何形式等; 如果您的數據在 SQL Server 中,我認為這不是一種過渡。
在升級之前,您的表已鏈接到后端數據庫,並且鏈接表管理器顯示了這些鏈接。 設置 ODBC 數據源並鏈接這些表后,它將顯示該鏈接。 您將以兩種不同的方式查看鏈接,因為它們實際上是不同類型的鏈接(Access 與 ODBC),即使這些鏈接在您的前端 mdb 中看起來可能相同。
我個人發現升遷向導在確定正確的數據類型方面做得非常糟糕。 我會使用我需要的數據類型在 SQL Server 中自己創建表,然后將數據從 Access 移動到現有表。 否則,當您真正需要十進制時可以使用 varchar 或 float 時,您將被文本數據困住。
移動數據后,我將刪除 Access 表並鏈接到 SQL Server 表。
在沒有數據庫的備份副本之前不要做任何事情。
作為一個標准的偏執狂,我只會制作現有文件的備份副本並在前端運行升遷向導。 如果發生任何不良情況,只需通過覆蓋備份副本來還原更改。
更新前端,它會在升遷之前導入后端表。 我一周前做了這個,結果很成功。
但是,任何使用 -1 而不是 Yes 的查詢都將失敗。 對沒有主鍵的表進行的任何全表刪除都將失敗,並且您將獲得與僅使用傳遞 SQL 查詢截斷表不同的行為。 trunc 將刪除所有行,Access 版本可能會留空。
此外,您還需要在具有自動編號列數據類型的表上打開記錄集的任何位置包含 dbSeeChanges。 SQL 將這些更改為 Identity 數據類型,然后在您嘗試打開表之前抱怨。 祝你好運。
在前端做這一切
您可以簡單地將表導出到 SQL Server。
然后,您可以刪除前端中的鏈接表。
然后將連接鏈接到 SQL Server
查看:
您還必須考慮如何發布前端。 如果您使用的是 dsn 文件,則需要將其提供給每個用戶。
您需要確定最終用戶如何訪問 SQL Server。 您是否使用存儲在連接中的用戶名和密碼進行單次登錄?
您還可以將后端 DB 拆分為多個 Access DB,並將它們鏈接到前端。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.