2010-08-29 145 views
0

在T-SQL(Microsoft SQL 2008)中,如何创建具有相同架构,表,表列,索引,约束和外键的新数据库,但不包含来自原始数据库的任何数据?如何将除数据之外的所有数据从一个数据库复制到另一个数据库?

注意:制作一个完整的副本,然后删除所有的数据在我的情况下不是一个解决方案,因为数据库是相当大的,这样的完整副本将花费太多时间。

+0

难道你不能只导出没有数据的数据库吗? – 2010-08-29 13:06:39

回答

1
+0

对不起,我的问题不够清楚。我需要它作为计划任务或维护计划运行,而不仅仅是一次。由于数据库结构经常变化,我不能像这样编写整个数据库。 – 2010-08-29 13:13:37

+1

在这种情况下,使用SMO并在.NET中构建您自己的解决方案,然后您可以安排。也可以看看Visual Studio数据库项目(Visual Studio Team System for数据库架构师在2008年,但我相信2010年Pro也有这个)可以用于此也 – SQLMenace 2010-08-29 13:17:15

+0

看来你可以通过编程的方式做到这一点 http:///msdn.microsoft.com/en-us/library/microsoft.sqlserver.management.smo.database.script.aspx 你也可以看看在VS中使用类似.dbproj的东西来管理和保持对模式的版本控制变化。 – StuartLC 2010-08-29 13:20:51

0

我用liquibase用于此目的。只需将liquibase指向另一台服务器,它将使用您的更改日志将第二个数据库更新为模式明智的。它具有额外的好处,即更改日志文件存储在源代码控制中,所以我可以标记它的版本,使我可以将数据库恢复到我的应用程序的特定版本所期望的值。

相关问题