2009-07-16 198 views

回答

0

如果模式相同,則從一個數據庫進行數據庫轉儲並在其他數據庫中進行恢復。

其他選項是導出文件或excel中的數據,然後將它們導入到其他數據庫中。

Otherway是在第二個數據庫中創建DBLINK和執行像插入到一個查詢...(從選擇...)

+0

只會有一些表格會有相同的模式...我想複製這些表格中的數據,並留下其他人。 – 2009-07-16 04:54:14

2

您可以使用MSSQL Server 2000中BCP實用程序或SSIS(SQL Server集成服務)從MSSQL 2005或2008.

+0

我們有幾個季度或每年運行的流程(並且做這些流程的人會忘記如何執行這些流程以及他們應該完成這些流程)。因此,我們建立了SSIS包(他們曾經被稱爲DTS)以一致的,可重複的方式完成它們。 – Tangurena 2009-07-17 18:30:37

0

粗略解決方法:在SQL Server 2005及更高版本中,您可以編寫一個直接的INSERT ... SELECT語句(如果它們位於不同的SQL實例上,則使用鏈接服務器),然後將其包裝在TRY/CATCH塊中。如果它複製的很好,如果失敗,錯誤就會被捕獲和管理。

還會出現更多問題,例如目標表是否具有可爲空或具有默認值的額外列,但它是一個開始。

- 響應您的評論添加此 -

如何寫「INSERT ... SELECT」爲您的所有表的語句在一分鐘內:

首先,每個命令看起來像這樣:

INSERT TargetDB.dbo.xxx select * from xxx 

這確實使用SELECT *,但是因爲您正在尋找完全匹配的表,這應該不是問題。接着,要寫入的這些一個在當前選定數據庫中的每個用戶定義的表,運行該:

SELECT 'INSERT TargetDB.dbo.' + name + ' select * from ' + name 
from sys.tables 

與目標數據庫替換「TargetDB」,運行,剪切和粘貼的結果,然後在TRY/CATCH塊中工作。

+0

但這將要求我寫我所有的表的插入查詢! – 2009-07-18 03:43:04

相關問題