2011-03-21 54 views
2

我有兩個數據庫。 數據庫A - 完整的數據 數據庫B的 - 數據庫A的備份,但沒有數據所有表的sp_generate_inserts?或類似

我怎麼可以從數據庫中的所有數據,只是將其合併到數據庫B? 我的想法是隻生成一個插入整個數據或東西。

謝謝

回答

0

如果你沒有任何標識字段擔心,這是一個一次性的操作,你可以做這樣的事情,它採用sp_msforeachtable和動態SQL:

DECLARE @SQL varchar(max) 

SET @SQL = ' 
INSERT INTO DatabaseB.? WITH (TABLOCK) 
SELECT * 
FROM DatabaseA.?' 

exec sp_MSforeachtable @SQL 
+0

數據庫中充滿了觸發器和約束,是否會影響結果? – 2011-03-21 18:04:49

+0

@John - 如果你有FK約束條件,除非你幸運,並且約束條件都按照字母順序排列,就像你需要在'CC'之前的'BB'之前填充'AA'一樣,否則它將無法工作。否則,你會遇到一個約束錯誤。 – JNK 2011-03-21 18:06:34

1

OP說:

數據庫已滿觸發器和 約束

只需將A的完整備份恢復爲新數據庫並完成它。由腳本創建的大量「一次性」插入將永遠佔用您的事務日誌,並且很可能因FK等原因而失敗。