SET IDENTITY_INSERT 选项使用

当尝试向带有identity列的SQL表插入显式值时,会出现错误。解决方法是使用`SET IDENTITY_INSERT`选项。该选项允许在表的标识列中插入值。语法为`SET IDENTITY_INSERT [database_name].[schema_name].[table] ON|OFF`。需要注意的是,在同一个会话中,只能有一个表的IDENTITY_INSERT设置为ON。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

参考链接:https://msdn.microsoft.com/en-us/library/ms188059.aspx

当我们往一个带有identity列的表中插入行时,会报错:
Msg 544,Level 16, State 1,Line 8
Cannot insert explict value for identity column in table XXX when IDENTITY_INSERT is set to OFF.
这个时候,SET IDENTITY_INSERT选项就出场啦!下面就来介绍一下。


SET IDENTITY_INSERT:
允许将显示值插入到表的标识列中

语法:
SET IDENTITY_INSERT [ database_name . [ schema_name ] . ] table { ON | OFF }

注意:
同一个session中任何时候只能有一张表设置了IDENTITY_INSERT选项为ON。如果某张表已经开启了该选项,再去为另一张表开启该选项则会报错。

举例:

create table #test1
(
id int identity(1,1)
)

set identity_insert #test1 on
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值