2011-07-18 64 views
0

其实我想将一个大数据集迁移到另一个已经有一些数据的数据库。数据模式在两个数据库中都是相同的。情景是我的客户端已经有了运行在生产环境中的应用程序,他给了我一些新的实现它的需求。在实施之后,他希望在临时生产服务器上测试2个位置上接受测试的新要求。这样我就可以将现有的数据库连接到新的生产服务器。现在我想编写一个数据库脚本,用于在验收测试之前和之后迁移位置数据。我的问题是我的表的票证ID具有身份,并且两个数据服务器上运行的应用程序都会插入相同的TicketID。现在,当我迁移数据时,主键有冲突。父表的模式如下。迁移SQL数据库

TicketID, Identity(1,1) int 
LocationID int 
Problem varchar(500) 
IssueDate DateTime 

另一个问题是,票务ID是在顾客收据和客户端打印不想改票号

请给我建议这个问题的解决方案。

一个解决方案是,添加一列OldTicketID,但为此我需要更改我的应用程序代码,我不想改变那里有很多子表。

+0

你甚至不说你的DBMS是什么。我假设了Microsoft SQL Server(用于“Identity”位)。如果它错了,你可以自己改正。 –

回答

0

您可以更改标识列以仅生成旧数据集(标识(1,2))上的奇数和新数据集(标识(种子,2))上的偶数。

种子应设置为当前生产系统中最高的ticketid,因此不会与id发生任何冲突。