2010-03-19 82 views
2

对于从ASP.NET应用程序使用的表,视图和存储过程,我有许多手动编写的脚本(.sql)。这些脚本放下对象并重新创建它们。我需要一种在脚本更改而不删除对象时更新数据库的方法。例如,当列被添加到其中有行的现有表中时,我需要使用此额外列更新此表而不会丢失行。使用SQL脚本更新SQL Server数据库

我需要一种方法来“更新”数据库在一个单一的点击(我可以挂钩使用批处理文件的变化)。 Visual Studio是否支持这种功能?

回答

1

如果您获得Visual Studio Team System - Database Edition 2008--它现在与免费的“Developer Edition”捆绑在一起 - 它可以处理该问题。没有该版本的Visual Studio数据库项目实际上只存储了您想要跟踪的静态SQL。 Database Edition能够确定您的SQL与目标数据库中的内容之间的'增量',生成该脚本并针对您的数据库执行。您可以选择查看生成的SQL,但默认情况下它非常安全[如果它认为会丢失任何数据,它将不会运行。

+0

我还应该添加 - 与2010版本一起,这包含在“Visual Studio Premium” – cbkadel 2010-03-19 13:03:14

+0

+1:o)另一个好处是您可以设置开发和部署配置,以确保您的脚本在不影响实时系统的情况下完成您想要的功能。 – 2010-03-19 13:08:05

+0

cbkadel - 你能指点我一个在线资源,深入讨论这个问题吗?我假设你想让我使用“Schema Compare”工具? marc_s提供的链接是一个很好的开始,但不提供详细信息 – DotnetDude 2010-03-19 22:06:33

0

是的 - 它被称为数据库项目。

您可以定义Visual Studio数据库项目,在其中创建并更改SQL脚本,然后在需要时针对所选的数据库连接执行这些脚本。

看到这个blog post here是一个很好的解释,或者读了罗拉4个人写的whole series