2011-04-13 55 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文件&然后执行。
相关问题