如何使用 Datagrip 插入带有标识列的行?
Posted
技术标签:
【中文标题】如何使用 Datagrip 插入带有标识列的行?【英文标题】:How do I insert a row with an identity column with Datagrip? 【发布时间】:2016-07-20 17:53:20 【问题描述】:在尝试使用 Datagrip 时,我遇到了一个主要障碍。
我有一个带有主键“Id”字段的 Sql Azure 表,该表作为 Identity(1,1)
发送。在 Datagrip 中,它将列显示为 Id INT (auto increment)
。
我点击表格并打开表格编辑器。然后我添加了一条新记录,但将 Id
列留空。但是,当我提交更改时,它说它无法为标识列插入显式值。
不能在 Datagrip 中添加带有标识列的新记录吗?
【问题讨论】:
【参考方案1】:看起来issue 是几年前修复的。
【讨论】:
【参考方案2】:如果要添加带有标识列的记录,则需要为特定表打开IDENTITY_INSERT
。
https://msdn.microsoft.com/en-AU/library/ms188059.aspx
SET IDENTITY_INSERT tblYourTable ON
INSERT INTO tblYourTable (ID, Name...) VALUES (1, 'Foo', ...)
SET IDENTITY_INSERT tblYourTable OFF
值得注意的是,这不是您应该保留的内容,因为您希望仅对少数记录执行此操作。例如,导入以前的数据。
【讨论】:
这不仅根本不使用 Datagrip 工具,而且如果我尝试将数据插入生产数据库,它非常容易出错并且可能导致异常。此外,如果我正在执行插入操作手动声明我还不如只留下ID列而不处理identity_insert。以上是关于如何使用 Datagrip 插入带有标识列的行?的主要内容,如果未能解决你的问题,请参考以下文章