在这种情况下,一次只能在一个数据库表中将
IDENTITY_INSERT设置为ON,但为什么呢?由于IDENTITY列不是全局唯一的,我无法想象可能由于同时将标识插入多个表而导致的任何危险情况(至少不比通常用IDENTITY INSERT捏造更危险).
IDENTITY INSERT应该很少使用,但硬限制的原因是什么?
解决方法
我认为这是困难的.如果你可以随时保留它,为什么甚至有一个身份字段?
但实际上有几个限制:
>它仅在该连接上持续存在
>它只能在每个连接的一个表上设置
根据与连接相关的限制,我认为这主要是因为它永远不会意外地离开.
想象一下,如果有人在你的某个表上打开ID插入,那么你没有意识到并且执行了一个(通常)无效的插入操作会破坏你的ID字段的完整性?
请记住,如果没有约束或唯一索引,ID字段可以具有重复值…