关闭 Identity 插入限制

当为identity列插入时会报错:

  仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'xx'中的标识列指定显式值。

但在复制表数据时想带主键一起复制时,这时要设置IDENTITY_INSERT为ON, 如下: 

关闭 Identity 插入限制
 1 CREATE TABLE tb01

 2 (

 3     id INT IDENTITY(2,2) PRIMARY KEY , --这里与表 tb02 的id列作比较

 4     name NVARCHAR(10) NOT NULL

 5 )

 6 go

 7 

 8 CREATE TABLE tb02

 9 (

10     id int identity(1, 1) PRIMARY KEY ,

11     name nvarchar(10) NOT NULL

12 )

13 go

14 

15 INSERT INTO tb01

16 select 'name01'

17     union all

18 select 'name02'

19     union all

20 select 'name03'

21 go

22 

23 SET IDENTITY_INSERT tb02 ON

24 go

25 

26 insert into tb02

27 select * FROM tb01

28 go

29 

30 /*  用 * 插入时出错

31 消息 8101,级别 16,状态 1,第 2 行

32 仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'tb02'中的标识列指定显式值。

33 */

34 

35 insert into tb02(id, name)

36 select id, name FROM tb01

37 go

38 

39 

40 select * from tb01

41 go

42 

43 select * from tb02

44 go

45 

46 drop table tb01

47 drop table tb02
View Code

你可能感兴趣的:(entity)