2011-04-13 137 views
2

我在尋找幫助; 情況是,我有2個數據庫應該在結構上相同,但新產品具有ident列,PK和fk限制定義。我必須在一個'TempDB'中合併4個稍微不同的dbs,然後將數據複製到'NewProddb'中。將數據從一個數據庫複製到另一個SQL代碼

我已經管理腳本lto關閉FK檢查,並打開FK檢查,所以插入需要看起來像這樣;

[腳本來禁用所有FK約束(NOCHECK)

SET IDENTITY_INSERT [NewProdDB].[dbo].[Event] ON; 
INSERT INTO [dbo].[Event] 
(EventID, Name, StartDate, EndDate, PartnerRegStartDate, PartnerRegEndDate, HouseholdRegStartDate, HouseholdRegEndDate, ChannelId, HasTeam, MaxteamMembers) 

(Select 
EventID, Name, StartDate, EndDate, PartnerRegStartDate, PartnerRegEndDate, HouseholdRegStartDate, HouseholdRegEndDate, ChannelId, HasTeam, MaxteamMembers 
From TempDB.dbo.Event); 

SET IDENTITY_INSERT [NewProdDb].dbo.[Event] OFF; 

[腳本,以使所有FK約束(檢查)]

我想要做的是腳本這一個志不而不是單獨爲所有表格編寫腳本。所有列中的ALl數據將被複制。

我希望這很清楚。

在此先感謝。

+0

有一個未公開的sp稱爲msforeachtable,可能會幫助您遍歷每個表。此外,谷歌sp_generate_inserts,看看Vyas的腳本是否可以幫助你。 – Catch22 2011-04-20 16:09:47

回答

0

我會嘗試從Oracle數據庫的角度來回答,你可以在MSSQL中找到等價的數據。

有系統表存儲表&列信息。所以,你的腳本可以做以下

  1. 通源模式&目標模式
  2. 負載表&相應列有ALL_TABLES之間的連接& ALL_TAB_COLUMNS爲源模式。循環結果&生成您的插入腳本。你可以把它寫入sql文件&然後執行。
相關問題