2

我刚刚开始将旧的 Web 应用程序转换为新的结构。

我在 MS SQL Server 2012 数据库中创建了一个新设计的供应商表,我正在将供应商数据从旧数据库传输到该表。

我有一个使用新数据库作为数据上下文的 C# MVC 应用程序设置。目前,应用程序从旧的应用程序数据库中获取数据,对其进行检查,在必要时对其进行重新格式化,并以所需的格式将其插入到新数据库中。

但是,由于应用程序的用户已经习惯了旧数据库中的供应商 ID,我不想更改 ID,但是由于新供应商表中的 id 字段是自动增量的,它不会复制 ID从旧数据库。它只是简单地增加。

是否有人知道自动增量可以在项目初始导入阶段的 c# 代码中以编程方式覆盖。导入旧系统中的数据后,我想恢复为自动增量。

4

3 回答 3

1

您可以设置身份插入。但是,如果用户知道我找到的密钥,他们就会开始要求更改它们。我可能会将旧键视为用户标识符,并创建一个他们永远不会看到的新代理键。

于 2013-10-11T23:03:50.957 回答
0

在 Sql Server 中,您可以将 ID 字段设置为非标识。这将使它不会自动递增

于 2013-10-11T22:44:49.433 回答
0

您可以在插入一堆期间暂时关闭服务器上的身份生成,然后再次打开它。尝试将此查询提交到服务器:

SET IDENTITY_INSERT dbo.sometable ON ;

INSERT INTO dbo.sometable (id,.......) VALUES (456,.......) ;
INSERT INTO dbo.sometable (id,.......) VALUES (276,.......) ;
INSERT INTO dbo.sometable (id,.......) VALUES (387,.......) ;

SET IDENTITY_INSERT dbo.sometable OFF ;

它只是禁用身份创建,然后进行插入(请注意,列和值列表确实包含 id),然后恢复默认行为。

于 2013-10-11T23:54:09.043 回答