【发布时间】:2017-09-12 18:49:13
【问题描述】:
当我在 java netbeans 中运行时:
executeUpdate("INSERT INTO TableName (id, name) VALUES (1, 'Name1')")
我得到错误:
当 IDENTITY_INSERT 设置为 OFF 时,无法为表“TableName”中的标识列插入显式值
如果我跑:
executeUpdate("SET IDENTITY_INSERT TableName ON;INSERT INTO TableName (id,name) VALUES (1,'Name1');SET IDENTITY_INSERT TableName OFF;")
我收到此错误:
找不到对象“TableName”,因为它不存在或您没有权限。
为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
为什么要在 id 列中输入显式值?如果你想这样做,那为什么要创建一个身份类型呢?
-
看起来是权限问题。确保登录 / 用户对该表具有适当的权限,快速检查是使该用户成为 dbowner。
-
只有管理员才能将身份属性设置为开启。这样做时,数据完整性问题的可能性很大。这不是推荐的做法。那么你为什么要设置 id 值呢?
-
我支持一个遗留项目。它是这样来的
标签: sql-server identity-insert