簡體   English   中英

更改架構后更新我的asp.net應用程序/數據庫的最佳方法是什么?

[英]What's the best way to update my asp.net application / database after changing the schema?

我的應用程序的幾個主要數據庫表中存在的核心字段之一需要從varchar(5)更改為varchar(8)。 依賴於這些表的存儲過程列表非常長,更不用說在我的數據訪問層(帶有TableAdapters的ASP.NET 2.0 DataSet)中必須進行的更改。

是否有任何方法可以自動( 安全地 )更改所有重要字段的類型,並使更改傳播到所有依賴此字段的存儲過程/數據訪問層調用?

我正在使用SQL Server 2005數據庫。

您可能對Scott Ambler的有關數據庫重構的這篇文章感興趣。 我認為他也有一本書。 我認為,基本思想是引入一個具有適當寬度的新列,將現有數據復制到新列中,實現一個觸發器以同步所有新的插入/更新,遷移您的SP / DAL以使用新列,然后完成后,請刪除舊列。 顯然,所有新代碼都使用新列。 不幸的是,我不知道有任何自動方法可以對SP / DAL進行更新。

盡管現在對您沒有太大幫助,但您可以(將來)使用代碼生成工具為您生成數據訪問層和任何必要的(非定制)存儲過程。 我使用.netTiers,更改字段名稱,數據類型或列大小(例如您的情況)之類的內容非常簡單。

如果您對.netTiers這樣的東西感興趣,可以在這里查看其網站。

不幸的是,我不知道一種輕松更新所有內容的方法。 但是,您可以使用Redgate的SQL Refactor之類的工具來處理所有數據庫更改(請參見此處 )。

CommandBuilder可能對您有用,也可能沒有用。 它具有優點和缺點(就像我猜的一樣)。 至於這個階段您能得到多少好處,我不知道,但是它存在並且可以使用,所以我認為我應該提出來:)

我個人將以此為契機來查看我的數據訪問層。 您所做的更改很小,但是對系統產生了深遠的影響, 為什么呢?

如果您預見到系統會有更多變化,那么我一定會更多地考慮DAL的結構,以及為什么小的變化會產生如此大的影響。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM