所以,我的问题是我正在尝试制作一些可以轻松地将Excel数据表加载到SQL数据库中的东西,但在此之前我必须尝试使身份规范与我合作。
当我为主键分配标识规范为true时,问题就开始了,因为我收到了错误消息"无法在表格中插入标识列的显式值' Priskod'当IDENTITY_INSERT设置为OFF时。"
但是,当我设置身份规范为false时,我收到错误消息"违反PRIMARY KEY约束' PK_dbo.Priskod'。无法在对象' dbo.Priskod'中插入重复键。重复键值为(0)。该声明已被终止。"
有没有人对我如何解决此问题有任何建议?
答案 0 :(得分:0)
听起来你有一个Excel电子表格,其中包含要导入SQL Server表的数据。
问题是您尝试将其直接加载到源表中并启用此功能,您将禁用IDENTITY
列。这应该响起警钟,因为SQL在它阻止你插入重复键时是正确的。
这里有两个选项:
Excel中的键值是唯一的真实标识值,因此您只会在目标表中存在INSERT
个记录。这可能最好通过先导入staging / temp表和ID
不存在的插入来实现。您可能还希望在UPDATE
确实存在的行上执行ID
。
Excel中的键值不是真正的标识值。
无论哪种方式,我认为您应该在目标表中添加一个新列,例如:ExternalId
,如果需要可以复制,或者检查以防止重复。使用这两种方法,您应该保持IDENTITY
插入原样。
答案 1 :(得分:0)
让系统立即运行。 我必须直接将信息输入数据库,而不是实际尝试将信息上传到数据库本身。非常感谢大家的帮助和支持。你们都很超级。