2012-12-07 34 views
27

想要創建一個腳本來導出數據和表格和視圖到一個sql腳本。想要創建一個腳本來導出數據和表格和視圖到一個sql腳本

我有SQL Server 2008 R2。

到目前爲止,我只能夠爲所有表和視圖自動生成一個sqlscript。但數據不包括在內。

或者有沒有更簡單的方法將數據,表,視圖從一臺SQL Server導出到我的ISP的SQL服務器?

問候 茶

+0

[非物化]的觀點沒有數據 - 他們只是存儲查詢。即使SQL服務器是在另一家公司如ISP –

回答

4

要做到這一點,最簡單的方法是創建一個備份,.bak文件複製到其他服務器,並恢復備份那裏。

+0

可以嗎?它不會在備份中尋找我的名字嗎? – TeaDrinkingGeek

+0

@TeaDrinkingGeek不,它不會在意。只要你在兩端使用相同版本的SQL,這應該沒問題。你也應該能夠轉到更新的版本(例如2008年到2012年),但我認爲你不能去舊版本(例如2008年到2005年) – Greg

1

像@jhewlett說的那樣,將是最好的方式來做到這一點。在評論部分回答這個問題。不,它不應該是一個問題。只要確保SQL Server版本是相同的。有一個問題不是很久以前,有兩臺PC安裝了不同版本的R2,無法恢復備份。您還可以執行的其他操作是使用數據編寫整個數據庫的腳本,但不推薦這樣做,因爲生成該腳本可能需要很長時間,並且可能會在其他計算機上完成運行。

或者您可以簡單地停止SQL服務器實例,並將數據庫複製到外部硬盤驅動器並重新連接到其他服務器。只記得在完成這一步之後啓動實例。

+0

複製和附加是非常暴力的。難道你不認爲在腳本不是一個選項的情況下備份和恢復更簡潔。 – Eniola

5

這裏有一些選項來考慮(在什麼我會建議方面優先): -

  • 一個簡單的備份和恢復將是最簡單快捷的解決方案;
  • 使用數據腳本工具(如Red-Gate的Data Compare)可以解決您的需求;
    • 使用數據庫比較作爲Visual Studio的一部分。
  • 可以開發SSIS包以在兩個實例之間來回傳輸數據;或
  • 使用SET IDENTITY INSERT ON/OFF命令身份種子表
+0

我同意腳本工具通常是最好的選擇。 Red-Gate和其他提供商肯定填補了這一空白。只是想提到SSMS現在服務很好(儘管通過鏈接VALUES子句可以更好地生成SQL)。 – Eniola

60

如果由於某種原因,備份/恢復不會爲你工作,SSMS」生成腳本工具包括先進的腳本選項包括編寫自己的腳本數據:

enter image description here

+12

+1。要在SSMS 2012中進入此菜單,請右鍵單擊數據庫 - >任務 - >生成腳本。 –

1

我用Navicat Premium是對這類事情在mysql中。它從數據,表格,視圖和其他任何東西中生成sql。它提供了用於從不同服務器或平臺上的一個數據庫複製或同步表的工具。例如,我非常使用它來將從MySQL轉移到SQLite數據庫,非常簡單和快速。否則,我不得不手動轉移它,這很麻煩。

非常好的工具,任何數據庫管理員或程序員都需要。它支持MySQL,Oracle,MS SQL Server,PostgreSQL和SQLite。

+0

Navicat處理出口表和結構的SQL服務器數據庫。我曾嘗試通過使用SQL Server Management Studio進行常規導出,但它一直在出錯 - 用戶被告知要使用某種權限問題。 – Lanceomagnifico

0

如果你不想端口的所有表中的數據(例如,你需要移植只是在特殊表的一些基本數據)腳本選項是不是對您有用。在這種情況下,你會有兩個選擇。首先是使用一些第三方工具,如紅門,第二種方法是自己寫腳本。我更喜歡第二種選擇,因爲除了大多數人的昂貴价格外,我想運行一些小刪除,更新和插入腳本的腳本。但是,重要的問題在於:可能記錄數量太長,無法通過記錄編寫腳本記錄。我認爲鏈接服務器是解決這個問題的好點。這足以說明,你看到訪問源和目標DB只是聲明鏈接服務器中的形象,並在源數據庫獲取新的腳本和編寫腳本。附加圖片必須清晰。

Create New Linked Server: 

enter image description here

Write Destination SQL Server Address: 

enter image description here

Fill Login Info: 

enter image description here

Now you have Linked Server: 

enter image description here

Write script and enjoy: 

enter image description here

希望這有助於。

+0

雖然你的方法有效,但它絕對是一個艱難而複雜的方法。它增加了安全考慮的表面積。 – Eniola

+0

@Eniola你對。我不說這是最好的方式。我剛纔談到了另一種方式,我們可以最有效地控制我相信的架構和數據的細節。在正常情況下,我將使用SQL Server生成腳本,但在極少數情況下,特別是當我想將一個數據庫中的某些數據移植到另一個數據庫時,我更喜歡這種方式。感謝您的通知。 – QMaster

1

生成綱要與數據請按照下列步驟。

  • 選擇數據庫生成綱要「>」右鍵單擊「>」任務「>」生成模式「>」點擊下一步在彈出的窗口「>」
  • 選擇DB對象來生成模式,然後單擊下一步「 >」
  • 進入高級選項,然後向下滾動‘>’
  • 查找類型數據的腳本並選擇一個選項,因爲你需要。 '>' 然後點擊下一步並完成。
  • 享受它。

As in image

相關問題