2014-02-19 84 views
11

我們有一個SQL Server 2012數據庫,裏面有測試數據,我們用它來開發一個網站。我們很快就需要清空數據庫並導入真實的數據,但是在Web開發過程中我們多次更改了數據庫設計,所以我們不能使用我們在開始時創建的空副本!SQL Server 2012複製數據庫沒有數據

有沒有辦法複製數據庫,沒有數據,但有一切(包括視圖,SP功能,安全對象等),並將所有索引重置爲設計種子值?換句話說,我們希望保持數據庫原樣,但刪除所有數據,將所有表索引重置爲其原始設計種子值,然後導入數據。

任何幫助感激地接受

回答

7

你可以通過右鍵單擊它在Management Studio中,然後將任務,生成腳本生成的數據庫對象的腳本,選擇你想要的腳本的對象,如表,視圖等等,你有它。

+0

我們主要使用VS來處理數據庫,我們對使用腳本不是很熟悉。我更喜歡VS或SQL中的UI方法 – YAOWSC

+0

您只需通過SQL Server Management Studio執行生成的腳本 – Mentor

+0

我一直在查看並嘗試SQL管理工作室中的腳本過程,但我仍然無法看到如何製作它生成一個將複製數據庫結構(包括索引,關係等)但沒有數據的腳本。我也不知道如何運行一個腳本,我能爲你提供多一點幫助嗎?看起來令人驚訝的是,我無法資助一個簡單的存儲過程或創建數據庫空副本的類似方法! – YAOWSC

0

是的!有幾種方法可以做到這一點。你可以嘗試複製數據庫,下降FKS,截斷表和重新創建FKS(有SP的自動滴/重建FK截斷的過程,如果你可以進行搜索。)

你可以在MS只需右鍵點擊嘗試生成整個數據庫創建腳本(檢查它是否工作到100%)

和最可靠的方法:使用VS創建一個新的空數據庫並使用模式比較工具生成diff腳本。

+0

我現在已經使用複製方法來創建一個精確的副本,然後刪除所有的數據。我現在如何將索引設置回設計的「種子」值,而無需刪除和重新創建所有索引和關係? – YAOWSC

+0

在「複製」方法中,truncate ill reseed。問題在於你必須以正確的順序放棄/重新創建FK。當我想保留大部分數據並只是「清理」幾張表格時,我會使用它。 – jean

+0

對不起 - 我的意思是我使用備份還原方法來複制數據庫。儘管如此,刪除和重新創建所有FKs指數將是一項重大的工作。我看了一下Redgate的比較產品頁面,但不清楚是否可以使用它來複制沒有數據的數據庫!當然有人必須創建一個簡單的方法來做到這一點? – YAOWSC

26
  1. 右鍵單擊您的服務器中的數據庫,然後選擇Tasks > Generate Scripts
  2. 在介紹步驟中,單擊下一步。
  3. 在Choose Objects中,您可以選擇整個數據庫(包括函數等),也可以指定要生成的對象。在你的情況下,你應該選擇Script entire databases and all database objects,然後點擊下一步。
  4. 選擇您的文件名稱和目的地,然後點擊下一步
  5. 審查,然後單擊下一步
  6. 完成!

您會看到在指定文件夾中生成的.sql文件。您可以在其他服務器上打開該文件並點擊執行,然後生成完全相同的數據庫。

0

還有一種方法,需要更長的時間,但有其好處。當使用其他人建議的「生成腳本」選項時,我們將整個數據庫和表格腳本置於「.sql」文本文件中。

另一種方法是將現有數據庫恢復到新數據庫中。然後,您可以使用自定義腳本刪除表中的所有數據以遍歷表。現在你有一個沒有任何數據的數據庫副本。做一個備份來獲得一個熟悉的「.bak」文件。