[英]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.