2012-02-14 216 views
0

我有一個小問題。我的朋友有一個擁有超過10個表的數據庫,每個表有90-100個記錄。從SQL Server 2005 Express Edition導出記錄

我找不到解決方法來從他的表中導出記錄(將SQL文件放入類似於INSERT INTO .... VALUES ...的每個現有記錄)以導入到我的數據庫中。

如何做到這一點?

我想:右擊一個表 - >Script Table as -> INSERT TO -> File ...

但它只生成INSERT聲明。

有解決方案嗎?或者此功能僅適用於商業版本?

UPDATE

您可以使用BCP命令,像這樣

對於export命令提示符:bcp ADatabase.dbo.OneTable out d:\test\OneTable.bcp -c -Usa -Ppassword 對於進口:bcp ADatabase.dbo.OneTable in d:\test\OneTable.bcp -c -Usa -Ppassword

這些命令將創建一個包含記錄指定的BCP文件表。你可以導入使用現有的BCP文件到另一個數據庫

如果使用則遠程數據庫:

bcp ADatabaseRemote.dbo.OneTableRemote out d:\test\OneTableRemote.bcp -Slocalhost/SQLExpress -Usa -Ppassword 

相反的localhost/SQLExpress,您可以使用localhost或其他的服務器名稱...

+0

你想獲得一個文件導入到另一個數據庫或只是有記錄導出到一個平面文件或Excel或類似的東西? – Brian 2012-02-14 14:25:45

+0

只有記錄是可能的或表結構但記錄...問題的中間是如何導出這些記錄,他們很多 – 2012-02-14 14:53:58

回答

1

也許最簡單的這樣做的方法是運行一個輸出到文件的SELECT語句。然後您可以將該數據導入到數據庫中。

對於簡單的移動,我也做了手動複製/粘貼。有時最好在將Excel粘貼到新數據庫之前將其用作臨時平臺。您可能需要在新數據庫中創建一個與您正在粘貼的數據完全匹配的臨時表。例如,我通常不會首先在臨時表上放置一個PK,並使PK字段只是一個INT。這樣副本會更平滑。

在企業界,您可以使用SSIS來移動這些數據。

+0

我更新了我的帖子,我使用了BCP命令。 – 2012-02-15 12:19:33

0

有幾種方法可以做到這一點。一,從每個表中選擇一切,並將結果保存爲csv或分隔文件(您可以從sql管理工作室執行此操作)。您還可以將這些表編寫爲創建並將腳本複製到新數據庫中,假設它也是一個sql服務器。然後爲了導入,使用load infile語句。你可能不得不穀歌的SQL服務器的語法,但我知道這在MySQL和Oracle的作品。還沒有在SQL Server中嘗試過它。

LOAD DATA INFILE 'myfile' 
INTO TABLE stuff 
FIELDS TERMINATED BY ',' 
LINES TERMINATED BY '\n' 
SET id = NULL; 

或者如果你要去另一個sql server使用sql導入導入嚮導。

http://msdn.microsoft.com/en-us/library/ms141209.aspx

+0

我更新了我的主帖,看到你! – 2012-02-15 12:19:15

相關問題