zoukankan      html  css  js  c++  java
  • 在向"带有自增字段的数据库表"中插入数据时,自定义"该自增字段"的数据

    在设计数据库表的时候,经常会使用自增主键或其他自增字段。比如:

    QQ截图20130724155744

    DB_UserGroups表中GroupID为该表主键,并为自增字段。

    但在将某字段设置自增后,想在插入数据时,人为指定自增字段的数据内容。如:

    ·

    insert into DB_UserGroups values(0,'全部')
    
    ·
    这时SQL SERVER会提示:

    ·

    消息 8101,级别 16,状态 1,第 1 行
    仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表'Northwind.dbo.DB_UserGroups'中的标识列指定显式值。
    ·
    通过提示可以看到,需要将IDENTITY_INSERT设为ON,通过以下语句即可打开:
    ·
    SET IDENTITY_INSERT DB_UserGroups ON
    ·
    但是现在再次执行insert语句的时候,发现仍然是这个错误,后来发现我语文没学好,漏掉了一个条件,就是一开始提到的“仅当使用了列列表”,呃。。。好吧,需要这样写insert语句:
    ·
    insert into DB_UserGroups(GroupID,GroupName) values(0,'全部')
    ·
    恩,把要插入的字段全部在表名后标明,不可以省略,这样就OK了。
    如果不需要自定义自增字段数据,可以再次使用:
    ·
    SET IDENTITY_INSERT DB_UserGroups OFF
    ·
    关闭掉IDENTITY_INSERT。
    ·
    PS.标识列的数据一旦添加,不可更改!不过可以先去掉标识列的“是标识”,然后改完再加回来。。。我只能想到这么多了。
  • 相关阅读:
    多姿多彩的线程
    字典操作
    字符串语法
    购物车
    列表常用语法
    整数划分问题
    计算N的阶层
    判断是否是素数
    快速排序
    冒泡排序
  • 原文地址:https://www.cnblogs.com/xwgli/p/3210928.html
Copyright © 2011-2022 走看看