更改架构后更新我的asp.net应用程序/数据库的最佳方法是什么?

时间:2008-11-27 03:04:18

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

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

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

我正在使用SQL Server 2005数据库。

3 个答案:

答案 0 :(得分:3)

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

答案 1 :(得分:1)

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

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

不幸的是,我不知道如何轻松更新你拥有的一切。但是,您可以使用Redgate的SQL Refactor之类的工具来处理所有数据库更改(请参阅here)。

答案 2 :(得分:1)

CommandBuilder可能对你有用,也可能没用。它有它的专业和骗局(就像我猜的那样)。至于它在这个阶段对你有多大好处,我不知道,但它存在并且可以使用所以我认为我应该提高它:)

我个人认为这是一个查看我的数据访问层的机会。你所改变的是非常小的,但它对系统产生了深远的影响,为什么?

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