SET IDENTITY_INSERT 選項使用
阿新 • • 發佈:2019-01-24
當我們往一個帶有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
insert into #test1
(id)
select 258 as id
set identity_insert #test1 off
select * from #test1
<完>