此任务的目的是将包含所有实体的默认值的数据库复制到新创建的数据库中。当程序第一次创建数据库时,将调用此任务,因此新创建的数据库将使用我的默认值数据库中的值填充。
只复制和粘贴数据库的问题是我的默认值数据库有凌乱的主键。每个实体的主键值都不符合规定。
我想要的是为程序创建新的数据库,从另一个数据库复制值,但每个实体都有连续的主键(1,2,3,4,5没有跳转)。
要求是结构,默认值数据库的引用必须保持稳定。例如,当复制实体A从5重置为id = 1时,所有引用也会更改为1。
我怎样才能做到这一点?有没有快速的方法来做而不是手动复制每个实体?因为它是一个非常大的数据库。
注意:默认数据库上下文与新创建的数据库上下文相同。
答案 0 :(得分:0)
第1步:
我已经通过初始化(Migrated
和delete data
)旧的db创建了一个新的数据库(即PK Reseed
)。之后我得到了旧数据库的精确副本(即模式) only.No data)
以下是一个表的脚本
Use Migrated;
GO
delete from IpOccupantNotes
GO
--To Reseed the PK
DBCC CHECKIDENT ('[IpOccupantNotes]', RESEED, 0)
GO
第2步:
之后我插入旧数据库中的相关数据(我的情况为Legacy
),如下所示。
INSERT INTO [Migrated].[dbo].[IpOccupantNotes] (Name, ZipCode)
select a.Name,a.ZipCode from [Legacy].[dbo].[IpOccupantNotes] as a;
GO
注意:如果您有任何疑问,请随时提出。我会帮助您:)