2010-08-29 162 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指向另一臺服務器,它將使用您的更改日誌將第二個數據庫更新爲模式明智的。它具有額外的好處,即更改日誌文件存儲在源代碼控制中,所以我可以標記它的版本,使我可以將數據庫恢復到我的應用程序的特定版本所期望的值。

相關問題