版权声明:本文为博主原创文章,未经博主同意不得转载。 https://blog.csdn.net/nwsuaf2009012882/article/details/32703597

SQL Server 2008 数据库主键自增插入显示值

前几天在工作的时候遇到在删除数据库中表的数据的时候。删除之后,又一次加入的数据没有得到原来的数据的id值(表中id为主键,且设置为自增) ,使用的是SQL Server 2008 ,如今已解决,和大家分享一下!

详细情况:

1.建立表t_test,设置主键自增,例如以下图

2.向表中插入数据

因为表中的主键字段id为自增在插入的时候不须要指定显示插入。所以Sql 语句为

<span style="font-size:24px;">insert into  [xxx].[dbo].[t_test]  values ('xiaoming')
insert into  [xxx].[dbo].[t_test]  values ('hanmei')
insert into  [xxx].[dbo].[t_test]  values ('lilei')
insert into  [xxx].[dbo].[t_test]  values ('ligang')
insert into  [xxx].[dbo].[t_test]  values ('xiaozhi')</span>

再插入的时候并没有指定显示值id字段,数据库会自己主动添加主键id值,数据库中数据为:

3.删除数据,又一次加入带有显示值的数据

<span style="font-size:24px;">delete [xxx].[dbo].[t_test] where id = 1</span>

插入带有显示值的数据:

<span style="font-size:24px;">insert into  [guagua_new_event_system_test].[dbo].[t_test] values (1,'xiaoming')</span>

数据库提示:

消息 8101,级别 16,状态 1,第 1 行
仅当使用了列列表而且 IDENTITY_INSERT 为 ON 时,才干为表'xxx.dbo.t_test'中的标识列指定显式值。

又一次设置INDENTITY_INSERT为ON时,又一次重加,sql 语句为:

<span style="font-size:18px;"> SET  IDENTITY_INSERT [xxx].[dbo].[t_test]  ON </span>
<span style="font-size:18px;"> insert into  [xxx].[dbo].[t_test]  values (1,'xiaoming')</span>

数据库提示:

消息 8101。级别 16,状态 1,第 2 行
仅当使用了列列表而且 IDENTITY_INSERT 为 ON 时,才干为表'xxx.dbo.t_test'中的标识列指定显式值。
明明已经设置了INDENTITY_INSERT为ON,可是为什么还是没有加入进去,看了SQL Server 2008的帮助文档,才明确须要制定一一相应的列名在显示插入的时候。

所以,正确的Sql 语句为:

<span style="font-size:18px;">SET  IDENTITY_INSERT [xxx].[dbo].[t_test]  ON
insert into  [xxx].[dbo].[t_test](id ,name)  values (1,'xiaoming')
SET IDENTITY_INSERT [xxx].[dbo].[t_test] OFF</span>

仅仅是在显示插入值的时候的时候须要制定列名。同一时候打开同意显示插入的INDENTITY_INSERT,才可以插入。

--- --- 路漫漫其修远兮,吾将上下而求索

转载于:https://www.cnblogs.com/ldxsuanfa/p/10857294.html

数据库主键自增插入显示值相关推荐

  1. mysql主键自增为什么在插入的时候还要自己写主键值_数据库主键自增插入显示值...

    SQL Server 2008 数据库主键自增插入显示值 前几天在工作的时候遇到在删除数据库中表的数据的时候,删除之后,重新添加的数据没有得到原来的数据的id值(表中id为主键,且设置为自增) ,使用 ...

  2. Oracle数据库主键自增

    Oracle数据库主键自增 在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增.下面 ...

  3. oracle数据库主键自增序列_Oracle数据库主键自增

    Oracle数据库主键自增 在学习mysql时,我们很容易通过auto_increment就能实现主键自增的功能,但是在Oracle数据库中,是没有这个关键字的,所以也不能通过这样来实现主键自增.下面 ...

  4. Navicat:设置Oracle数据库主键自增

    一. 创建如下表 Oracle数据库不同于Mysql.Sql Server数据库,Oracle数据库主键自增不能在建表时直接设置,而是需要通过序列和触发器进行设置! 二.创建序列 create seq ...

  5. 数据库主键自增到最大值

    使用mysql数据库: 因为数据库主键增长到啦最大值,数据id达到了20亿,查询数据好像只有200万数据: int字段:数据的范围在-2^31~2^31-1 2^31-1 = 2147483647 u ...

  6. Mybatis使用Oracle数据库主键自增

    一.关于mysql和oracle主键自增 我们知道在mysql中主键设置为int类型,然后设置AUTO_INCREMENT,则在插入数据的时候mapper中的sql文件是可以不写主键这个字段,数据库就 ...

  7. mybatis 设置数据库主键自增

    1.mapper.xml文件中: useGeneratedKeys="true" keyProperty="id" <insert id="sa ...

  8. 设置navicat数据库主键自增 1062报错以及result in duplicate entry '' for key 'primary'

    设置主键自增时,和设置主键时可能有粗心的同学和我一样就是将一个表中的有两个相同值的属性设为主键这时就会报错 解决方法很简单就是保证设置主键属性下的值不能相同即可.

  9. Oracle数据库主键自增的两种方式(SEQUENCE和触发器)

    1.准备工作 创建oracle数据库表,用户表 SYS_USERS 其中user_id为主键 -- Create table create table SYS_USERS (user_id NUMBE ...

最新文章

  1. 编写可调模板并使用自动调谐器
  2. 基于OpenCV实战:对象跟踪
  3. 服务器信息采集协议,服务器信息采集
  4. Flutter开发之布局-3-center(17)
  5. python coroutine_笔记-python-coroutine
  6. Python丢弃返回值
  7. jsp学习之路之安装Apache Tomcat7.0服务器
  8. Android4.0升级新特性
  9. 考研计算机网络,2020计算机专业考研的计算机网络部分知识点
  10. phpMyAdmin无法导入大的数据库文件的解决方法
  11. logrotate 切割 nginx php mysql 日志
  12. mPush实战笔记1服务器环境
  13. AWS宣布计划在加拿大开设第二个区域
  14. c语言SPF算法代码,SPF 算法具体过程
  15. 女生学习前端究竟适不适合?
  16. 开源API查询IP地址归属信息
  17. Linux wipe工具
  18. Java用HttpClient爬大学英语四六级考试成绩查询接口
  19. 5.6.3 分组总计查询
  20. 移位运算(左移和右移)

热门文章

  1. 分治算法求最大最小值c语言,[蓝桥杯][算法提高VIP]和最大子序列 (C语言代码)分治法...
  2. 【牛客 - NC93】设计LRU缓存结构(模拟)
  3. 【Python学习】 - TensorFlow.keras 不显示epochs进度条的方法
  4. 【CodeForces - 574C】Bear and Poker(思维,剪枝,数学)
  5. c语言程序图片马赛克,关于c语言的图像均值滤波 请问大神为什么我的结果都是马赛克...
  6. w3cschool php 调整图片尺寸,PHP_php修改上传图片尺寸的方法,本文实例讲述了php修改上传图 - phpStudy...
  7. oschina mysql limit_MySQL 用 limit 为什么会影响性能?
  8. uniapp ajax数据库查询,uniapp小程序登录、数据请求方式
  9. 华为鸿蒙2.0操作页面,华为鸿蒙2.0开面界面确认,这一变化你可懂
  10. html淡化效果,jQuery实现基本淡入淡出效果的方法详解