身份规范使一切麻烦

时间:2017-04-21 08:42:03

标签: sql-server

所以,我的问题是我正在尝试制作一些可以轻松地将Excel数据表加载到SQL数据库中的东西,但在此之前我必须尝试使身份规范与我合作。

当我为主键分配标识规范为true时,问题就开始了,因为我收到了错误消息"无法在表格中插入标识列的显式值' Priskod'当IDENTITY_INSERT设置为OFF时。"

但是,当我设置身份规范为false时,我收到错误消息"违反PRIMARY KEY约束' PK_dbo.Priskod'。无法在对象' dbo.Priskod'中插入重复键。重复键值为(0)。该声明已被终止。"

有没有人对我如何解决此问题有任何建议?

2 个答案:

答案 0 :(得分:0)

听起来你有一个Excel电子表格,其中包含要导入SQL Server表的数据。

问题是您尝试将其直接加载到源表中并启用此功能,您将禁用IDENTITY列。这应该响起警钟,因为SQL在它阻止你插入重复键时是正确的。

这里有两个选项:

  1. Excel中的键值是唯一的真实标识值,因此您只会在目标表中存在INSERT个记录。这可能最好通过先导入staging / temp表和ID不存在的插入来实现。您可能还希望在UPDATE确实存在的行上执行ID

  2. Excel中的键值不是真正的标识值。

  3. 无论哪种方式,我认为您应该在目标表中添加一个新列,例如:ExternalId,如果需要可以复制,或者检查以防止重复。使用这两种方法,您应该保持IDENTITY插入原样。

答案 1 :(得分:0)

让系统立即运行。 我必须直接将信息输入数据库,而不是实际尝试将信息上传到数据库本身。非常感谢大家的帮助和支持。你们都很超级。

相关问题