--建立测试环境 Create table A (ID Int Identity(1,1),Name Varchar(10)) Create table B (ID Int ,Name Varchar(10))Insert B Values(3,'CC') Insert B Values(7,'DD') Insert B Values(9,'EE') GO --测试 --此时不能往自增列插入数据 Insert A Values('AA') Insert A Values('BB')Select * from A --将Identity_Insert设为ON后,自增列可以插入数据 Set Identity_Insert A ON Insert A(ID,Name) Select * from BSelect * from A --将Identity_Insert设为OFF后,自增列又不能插入数据了 Set Identity_Insert A OFF Insert A Values('GG') Insert A Values('HH')Select * from A GO --删除测试环境 Drop table A,B --结果 /* --开始插入数据 ID Name 1 AA 2 BB--Identity_Insert设为ON后,插入数据 ID Name 1 AA 2 BB 3 CC 7 DD 9 EE--Identity_Insert设为OFF后,插入数据 ID Name 1 AA 2 BB 3 CC 7 DD 9 EE 10 GG 11 HH */
insert ...
SET IDENTITY_INSERT 表 OFF
ALTER TABLE <table name> ALTER COLUMN <column name> DROP IDENTITY另外一种方法就是:
SET IDENTITY_INSERT products ON
这样子就允许对Identity列进行添加
Create table A (ID Int Identity(1,1),Name Varchar(10))
Create table B (ID Int ,Name Varchar(10))Insert B Values(3,'CC')
Insert B Values(7,'DD')
Insert B Values(9,'EE')
GO
--测试
--此时不能往自增列插入数据
Insert A Values('AA')
Insert A Values('BB')Select * from A
--将Identity_Insert设为ON后,自增列可以插入数据
Set Identity_Insert A ON
Insert A(ID,Name) Select * from BSelect * from A
--将Identity_Insert设为OFF后,自增列又不能插入数据了
Set Identity_Insert A OFF Insert A Values('GG')
Insert A Values('HH')Select * from A
GO
--删除测试环境
Drop table A,B
--结果
/*
--开始插入数据
ID Name
1 AA
2 BB--Identity_Insert设为ON后,插入数据
ID Name
1 AA
2 BB
3 CC
7 DD
9 EE--Identity_Insert设为OFF后,插入数据
ID Name
1 AA
2 BB
3 CC
7 DD
9 EE
10 GG
11 HH
*/
on 表示可以显示的插入值
off 表示不允许显示的插入值