我尝试使用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约束等有关,但是有人知道吗?
答案 0 :(得分:8)
您只能在会话中为一个表设置IDENTITY_INSERT
。如果您想在多个表格中使用它,则需要始终如一地设置ON
和OFF
,请参阅以下模板:
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。