2010-03-01 90 views
0

我已经继承了一个根本没有真正的参照完整性的数据库,所以我创建了一个新的数据库,并对此进行了更正。我现在的问题是,我有大量的数据(约5000万行)与以前分配的ID。我需要将这些ID保留在我的新数据库中,否则我将失去大量数据的参考。所以,最初我想关闭列上的标识,然后插入数据并将其打开。从旧的数据库结构导出到新的数据库结构

这听起来像是一个可行的计划吗? 这有什么缺点吗? 有没有人试过并测试过它?

回答

2

SET IDENTITY_INSERT ON仅适用于这些情况。插入后不要忘记调整身份计数器。

+0

因此,通过指定IDENTITY_INSERT ON,这将保留我的旧DB的现有ID?这是移动数据的关键部分。对不起,我在尝试和实现它之前需要充分理解:o) – 2010-03-01 15:24:30

+0

如果插入查询包含来自旧数据库的id列和值,那么是的。此选项允许将任何值插入标识列,就像它们是普通列一样。 – wRAR 2010-03-01 15:28:00

+0

@Ardman,详情请参阅http://msdn.microsoft.com/en-us/library/aa259221(SQL.80).aspx。小引号“允许显式值插入到表的标识列中。 ' – 2010-03-01 15:28:39