我正在尝试使用VBA从文本文件重建数据库.要插入ID值,我在发送INSERT之前调用它:
SET IDENTITY_INSERT TableName ON
Run Code Online (Sandbox Code Playgroud)
这似乎适用于大多数TableNames,但当我在表'Accounts'上调用它时,我得到一个有趣的错误:
"IDENTITY_INSERT is already ON for table 'test.dbo.PropertyAssets'. Cannot perform SET operation for table 'Accounts'."
Run Code Online (Sandbox Code Playgroud)
我猜这与fkey约束等有关,但有人知道吗?
Ale*_*lex 13
您只能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
Run Code Online (Sandbox Code Playgroud)