2011-11-27 133 views
16

我剛剛在我的機器上創建了一個空數據庫。我現在希望將我們的服務器數據庫中的表複製到本地數據庫。將表從一個數據庫複製到另一個數據庫

我需要運行哪些sql命令來執行此操作?我希望創建新表,從舊錶中複製數據並將其插入到新表中。

+1

您可以創建一個SQL INSERT腳本。請參閱http://stackoverflow.com/questions/7515110/create-sql-insert-script-with-values-gathered-from-table – mhenry1384

回答

24

Create a linked server到源服務器。最簡單的方法是在Management Studio中右鍵單擊「Linked Servers」;它位於管理 - >服務器對象下。

然後你就可以使用4部分組成的名稱,server.database.schema.table複製表:

select * 
into DbName.dbo.NewTable 
from LinkedServer.DbName.dbo.OldTable 

這都將創建具有相同的結構,原來的一個新的表和數據複製過來。

+2

+1只有答案考慮到這些數據庫是在**不同的**服務器上! –

+0

如果您使用SQL Server 2000和2012+,將無法工作https://connect.microsoft.com/SQLServer/feedback/details/731869/using-sqlncli10-to-create-a-linked-server-to- sql-server-2000-causes-a-fault – sojim2

+0

這裏SQL Server 2000和2012+的解決方案(回答最高票數,而不是標記的答案):http://stackoverflow.com/questions/187770/copy-tables-從一個數據庫到另一個在SQL服務器 – sojim2

6

SELECT ... INTO:

select * into <destination table> from <source table> 
6

假設他們是在同一臺服務器,試試這個:

SELECT * 
INTO SecondDB.TableName 
FROM FirstDatabase.TableName 

這將創建一個新表,只是將數據從FirstDatabase.TableName複製到SecondDB.TableName並不會創建外鍵或索引。

1

最快的方法是使用RazorSQL或Toad這樣的工具。

2

假設您需要表的不同名稱。

如果您使用PHPmyadmin,則可以在菜單中使用它們的SQL選項。然後,您只需複製第一個表中的SQL代碼並將其粘貼到新表中。

當我從本地主機移動到虛擬主機時,這對我有用。 希望它適合你!

+0

對於非常大的表,其SQL代碼將是一個複製和粘貼的痛苦,PHPmyadmin的**導入**和**導出**菜單可以很容易地用作好。 – tmnol

3
INSERT INTO ProductPurchaseOrderItems_bkp 
     (
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
    ) 
SELECT 
     [OrderId], 
     [ProductId], 
     [Quantity], 
     [Price] 
FROM ProductPurchaseOrderItems 
    WHERE OrderId=415 
1

如果需要整個表結構(不只是基本的數據佈局),使用Task>Script Table As>Create To>New Query Window並在新的數據庫上運行。然後,您可以在閒暇時複製數據。

4

如果在兩個數據庫之間不斷遷移,那麼插入到已經存在的表結構中是一種可能性。如果是這樣,那麼:

使用以下語法:

insert into DESTINATION_DB.dbo.destination_table 
select * 
    from SOURCE_DB.dbo.source_table 
[where x ...] 

如果遷移表(或外鍵約束的表)的很多,我建議:

  • 與生成腳本高級選項/腳本數據類型:僅數據或
  • 使用第三方工具的度假村。

希望它有幫助!

7

另一種可用於將表從源數據庫複製到目標數據庫的方法是SQL Server導出和導入嚮導,該向導在SQL Server Management Studio中可用。

您可以選擇從源數據庫導出或從目標導入,以便傳輸數據。

如果您安排複製與表格關係和訂單無關的表格,此方法是將表格從源數據庫複製到目標數據庫的快速方法。

使用此方法時,表的索引和鍵將不會傳輸。如果您有興趣複製它,則需要爲這些數據庫對象生成腳本。

如果這些是外鍵,將這些表連接在一起,則需要按正確的順序導出數據,否則導出嚮導將失敗。

隨意閱讀更多關於這種方法,以及有關一些方法(包括生成腳本,SELECT INTO和第三方工具),在這篇文章中: https://www.sqlshack.com/how-to-copy-tables-from-one-database-to-another-in-sql-server/

相關問題