2015-01-05 200 views
9

有沒有工具可以將SQL Server 2014數據庫轉換爲2012?SQL Server 2014備份到2012

我試過生成腳本但生成的數據腳本太大,SQL Server Management Studio沒有執行它,我需要同時擁有模式和數據。

回答

8

據我所知,基本上有 3個兩個選項遷移數據庫的SQL Server版本較低,而無需使用第三方工具:

  • 生成腳本(不是真的適合大量數據)
  • 自定義腳本和BCP或導入/導出嚮導
  • SQL Server集成服務(傳輸數據庫任務)

第一選項不適合你的情況,如上所述。

第二個選項是簡單地編寫數據庫結構的腳本,然後使用導入/導出嚮導一次一個表複製數據。請注意,如果數據庫中存在外鍵約束,則可能需要先禁用約束,直到用數據填充所有表之後爲止。 This blog post詳細解釋瞭如何做到這一點。

第三選項使用基本上使用SMO創建目標服務器上的對象,然後將數據傳送的SISS Transfer Database Task。這是在不同版本的SQL Server實例之間遷移數據庫的推薦方法。 SSIS要求您已經爲Visual Studio安裝了SQL Server數據工具 - 商業智能(SSDT-BI)。在SQL Server 2012之前,這被稱爲商業智能開發工作室(BIDS)。你可以在這裏下載這些:

+0

如何使用SSIS傳輸數據庫任務? Microsoft SQL Server數據工具必須安裝在Visual Studio中?或... – Azarsa

+0

我已經更新了我的答案,並提供了一些關於SSDT-BI和BIDS的鏈接。 – Dan

3

使用該腳本,但不是通過Management Studio執行它,而是使用輕量級sqlcmd實用程序。

http://msdn.microsoft.com/es-es/library/ms162773.aspx

+1

如果數據庫包含具有數百萬行的表,那麼生成的腳本可能變得不切實際地很大(數十或數百GB)。即使使用sqlcmd實用程序來執行這樣一個巨大的腳本也會很痛苦。 – Dan

+0

@Dan我用這個方法加載了幾千兆字節的數據文件沒有問題.. – Oscar

+0

好吧,我必須承認我從來沒有嘗試過。但通常情況下,腳本將佔用數據庫本身2-3倍的空間,如果您的環境中沒有足夠的磁盤空間,這可能會成爲問題。這顯然可以通過將腳本分解爲更小的部分來解決,但它看起來比使用更多的工作,例如[SSIS傳輸數據庫任務](http://msdn.microsoft.com/en-us /library/ms141204.aspx)。 – Dan

1

哦,好吧,丹的第二個選項不起作用:在安裝SSDT-BI爲VS2013和配置數據庫傳輸任務,它說的是,源數據庫實例的版本必須低於或等於版本後目標數據庫實例:因此,從2014年到2012年(或在我的情況下爲2008R2)的遷移是不可能的。

相關問題