繁体   English   中英

如何在不删除表的情况下更新数据库架构

[英]How to update database schema without dropping tables

要更新现有数据库,我们包含安装程序运行的更新sql文件。 它看起来是要查看一个表是否存在,如果不存在,那么它将创建它和字段。 这是一些nHibernate功能自动生成的文件。

IF NOT EXISTS (select * from dbo.sysobjects where id = object_id(N'[dbo].[TableA]') 
and OBJECTPROPERTY(id, N'IsUserTable') = 1)
BEGIN
create table

这对于创建新数据库很好用,但是在开发过程中,当表的内容更改时,这意味着测试部门必须删除其数据库并从头开始。 这对于他们来说是非常耗时的,因为他们然后必须再次用新数据填充表。 我对sql的了解非常有限,到目前为止,我对解决方案的搜索都无济于事。

有没有一种方法可以使表更新而不管它们是否存在,而不必删除架构并重新启动?

非常感谢

您正在寻找的是ALTER TABLE,ADD语句。

http://msdn.microsoft.com/en-us/library/ms190273.aspx

ALTER TABLE Comments ADD newColumn INT 

举个例子。

那么,问题就变成了如何对整个数据库执行此操作? 您将需要一个SQL Delta工具。 (以下是一个http://www.sqldelta.com/的示例,但还有其他示例!)

然后,该工具将生成一个更新脚本,您可以在旧数据库上运行该脚本,以使其与最新数据库同步。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM