【问题标题】:What's the best way to update my asp.net application / database after changing the schema?更改架构后更新我的 asp.net 应用程序/数据库的最佳方法是什么?
【发布时间】:2008-11-27 03:04:17
【问题描述】:

我的应用程序的几个主要数据库表中存在的核心字段之一需要从 varchar(5) 更改为 varchar(8)。依赖于这些表的存储过程列表非常长,更不用说必须在我的数据访问层(带有 TableAdapters 的 ASP.NET 2.0 数据集)中进行的更改。

有没有办法自动(并且安全)更改最重要字段的类型并将更改传播到依赖它的所有存储过程/数据访问层调用?

我使用的是 SQL Server 2005 数据库。

【问题讨论】:

    标签: c# asp.net sql-server-2005


    【解决方案1】:

    您可能对 Scott Ambler 关于数据库重构的 essay 感兴趣。我想他也有一本书。我相信,基本思想是引入一个具有适当宽度的新列,将现有数据复制到新列,实现触发器以同步任何新的插入/更新,迁移您的 SP/DAL 以使用新列,然后完成后删除旧列。显然,所有新代码都使用新列。很遗憾,我不知道有任何自动方式来更新您的 SP/DAL。

    【讨论】:

      【解决方案2】:

      虽然现在它对您没有多大帮助,但您可以(将来)使用代码生成工具来为您生成数据访问层和任何必要的(非自定义)存储过程。我使用 .netTiers,更改字段名称、数据类型或列大小(如您的情况)非常简单。

      如果您对 .netTiers 之类的内容感兴趣,可以查看他们的网站 here

      很遗憾,我不知道有什么方法可以轻松更新您拥有的所有内容。但是,您可以使用 Redgate 的 SQL Refactor 之类的工具来处理所有数据库更改(请参阅 here)。

      【讨论】:

        【解决方案3】:

        CommandBuilder 可能对你有用,也可能没用。它有它的优点和缺点(就像我猜的任何东西)。至于现阶段对你有多大好处,我不知道,但它存在并且可以使用,所以我认为我应该提出它:)

        我个人会借此机会了解我的数据访问层。您所做的更改非常小,但它对系统产生了深远的影响,为什么?

        如果您预见到系统会发生更多变化,我肯定会更多地考虑 DAL 的结构,以及为什么一个小的变化会产生如此大的影响。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2011-08-30
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2015-04-18
          • 2015-10-09
          相关资源
          最近更新 更多