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.标识列的数据一旦添加,不可更改!不过可以先去掉标识列的“是标识”,然后改完再加回来。。。我只能想到这么多了。
  • 相关阅读:
    Yii增删改查
    10个超级有用、必须收藏的PHP代码样例
    yii源码分析I、II
    Yii源码阅读笔记
    Yii源码阅读笔记
    Yii源码阅读笔记
    当浏览器输入url的时候发生了什么
    js模块化值之seaJS
    js判断字符串中的英文和汉字
    display:table-cell的惊天作用,直接惊呆你!
  • 原文地址:https://www.cnblogs.com/xwgli/p/3210928.html
Copyright © 2011-2022 走看看