2

当我在 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”,因为它不存在或您没有权限。

为什么会发生这种情况,我该如何解决?

4

2 回答 2

3

赋予 ALTER 权限就足够了。

GRANT ALTER TO USER

https://sqlblog.org/2010/12/14/what-permissions-are-required-for-set-identity_insert-on

于 2019-06-15T05:12:45.637 回答
3

只需让IDENTITY属性做它应该做的事情,只传递名称。除非您尝试将特定 ID 与名称相关联,否则无需显式尝试传递 ID,在其中您必须跟上已使用和未使用的值,IDENTITY然后有点无用。在这种情况下,我只需在 ID 列上添加一个唯一约束。

INSERT INTO TableName (name) VALUES ('Name1')

于 2017-09-12T18:50:46.870 回答