2012-11-27 76 views
0

我試圖插入從一個數據庫到另一個使用SQL Server 2008插入表中的數據

我試圖從「EG-COMPUTER1 \ FTLIVE」插入到「EG-電腦2 \ FTSTANDBY」。

基本上從一臺計算機上的數據庫到同一網絡上不同計算機上的相同數據庫。

我該如何做到這一點?

注意:我可以連接到同一臺計算機上的兩個數據庫,因此必須有一種簡單的方法從一個數據庫插入另一個數據庫?

編輯::

我想補充的是一臺計算機使用SQL Server 2008 R2,另一種是使用SQL Server 2008

回答

1

如果你想只使用數據的數據庫級別的轉移,然後您應該將這兩個實例配置爲鏈接服務器(msdn doc)

否則,如果您熟悉Java(或任何提供API來與數據庫交互的高級語言),你可以寫一個簡單的程序,檢索在一個服務器從表中的數據,並插入到的表其他服務器(更快捷的方式,無需與DBA配置鏈接服務器)。

2

有幾種方法可以做到這一點。

 1. RightClick On DataBase -> Tasks -> Import -> Import Export wizard ->Choose Source database -> choose Destination database -> choose Copy data from One or more table -> choose required tables -> Import. 


    2.RighClick On Database -> Task -> Generate Script -> Choose tables -> Advanced -> Change "Types of Data to Script " to "Schema and Data or data or schema(as required)" -> Change "script Drop and Create" to Drop and Create(optional) - > create. 
Copy the script file/files and run in the other computer. 


    3.Right Click the database -> task -> BackUp -> create backup -> take the back up to other computer(.bak file can be found inside the Backup directory inside installation directory) -> right click the database -> task -> restore -> choose the bakup file -> done. 


    4. Can use sql azure migration tool http://sqlazuremw.codeplex.com/ (similar to step 1) 
0

Nislva,

親切驗證這兩個表是acessable或不符合您的登錄。如果兩個表都可訪問,則嘗試將一個數據庫表複製到另一個數據庫表中,否則從一個數據庫表創建一個視圖並將該視圖傳輸到另一個數據庫表。

在那裏你可以做你需要的任務。這是最佳實踐方法,將來也可能不會出現性能問題。

,如果你不intrested做這個任務,然後只需按照下面的查詢

INSERT INTO UR-表名(列名) 選擇sourcedbname.schemaname.column名1,sourcedbname2.schemaname.column-名稱... 從sourcedatabsename.schemaname.tablename

0

您可以使用OpenRowSet如果這不是否則經常性的活動,如果你需要執行的操作頻繁,那麼你應該創建linked server

1

我已經找到了我需要做的,這就是:

INSERT INTO [DatabaseNameA].[dbo].[Table] 
([Column1],[Column2] etc...) 
SELECT 
[Column1],[Column2] etc... 
SET IDENTITY_INSERT [DatabaseNameB].[dbo].[Table] On; 
GO 

這將選擇我想從選擇,打開IDENTITY_INSERT對這樣的數據可以插入和傳送數據的數據庫從一個數據庫到另一個。