zoukankan      html  css  js  c++  java
  • 关闭 Identity 插入限制

    当为identity列插入时会报错:

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

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

     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
  • 相关阅读:
    C语言I博客作业10
    C语言I博客作业09
    C语言I博客作业08
    背景图
    C语言II作业01
    C语言寒假大作战04
    C语言寒假大作战03
    C语言寒假大作战02
    C语言寒假大作战01
    C语言I博客作业12
  • 原文地址:https://www.cnblogs.com/mikedeng/p/3675782.html
Copyright © 2011-2022 走看看