sql-server – 为什么IDENTITY_INSERT ON一次仅允许在一个表上?

前端之家收集整理的这篇文章主要介绍了sql-server – 为什么IDENTITY_INSERT ON一次仅允许在一个表上?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
在这种情况下,一次只能在一个数据库表中将 IDENTITY_INSERT设置为ON,但为什么呢?由于IDENTITY列不是全局唯一的,我无法想象可能由于同时将标识插​​入多个表而导致的任何危险情况(至少不比通常用IDENTITY INSERT捏造更危险).

IDENTITY INSERT应该很少使用,但硬限制的原因是什么?

解决方法

我认为这是困难的.如果你可以随时保留它,为什么甚至有一个身份字段?

但实际上有几个限制:

>它仅在该连接上持续存在
>它只能在每个连接的一个表上设置

根据与连接相关的限制,我认为这主要是因为它永远不会意外地离开.

想象一下,如果有人在你的某个表上打开ID插入,那么你没有意识到并且执行了一个(通常)无效的插入操作会破坏你的ID字段的完整性?

请记住,如果没有约束或唯一索引,ID字段可以具有重复值…

猜你在找的MsSQL相关文章