令人困惑的IDENTITY_INSERT错误,表示它已在另一个表格中

时间:2016-02-23 22:05:30

标签: sql-server vba

我尝试使用VBA从文本文件重建数据库。要插入ID值,我在发送INSERT之前调用它:

SET IDENTITY_INSERT TableName ON

这似乎适用于大多数TableNames,但是当我在桌面上调用它时,会话和#39;我收到一个有趣的错误:

"IDENTITY_INSERT is already ON for table 'test.dbo.PropertyAssets'. Cannot perform SET operation for table 'Accounts'."

我猜这与fkey约束等有关,但是有人知道吗?

2 个答案:

答案 0 :(得分:8)

您只能在会话中为一个表设置IDENTITY_INSERT。如果您想在多个表格中使用它,则需要始终如一地设置ONOFF,请参阅以下模板:

SET IDENTITY_INSERT TableName ON

--insert values with IDs

SET IDENTITY_INSERT TableName OFF 

SET IDENTITY_INSERT PropertyAssets ON

--insert value with IDs

SET IDENTITY_INSERT PropertyAssets OFF

答案 1 :(得分:2)

你只需要另一个会话。我只是重新连接到同一个数据库,它运行没有任何问题。 当然我最后更改了脚本以将IDENTITY_INSERT设置为OFF。