Home  >  Article  >  Database  >  数据库主键自增插入显示值

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

WBOY
WBOYOriginal
2016-06-07 15:57:402096browse

SQL Server 2008 数据库主键自增插入显示值 前几天在工作的时候遇到在删除数据库中表的数据的时候,删除之后,重新添加的数据没有得到原来的数据的id值(表中id为主键,且设置为自增) ,使用的是SQL Server 2008 ,现在已解决,和大家分享一下! 具体情况: 1.

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 (&#39;xiaoming&#39;)
insert into  [xxx].[dbo].[t_test]  values (&#39;hanmei&#39;)
insert into  [xxx].[dbo].[t_test]  values (&#39;lilei&#39;)
insert into  [xxx].[dbo].[t_test]  values (&#39;ligang&#39;)
insert into  [xxx].[dbo].[t_test]  values (&#39;xiaozhi&#39;)</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,&#39;xiaoming&#39;)</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,&#39;xiaoming&#39;)</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,&#39;xiaoming&#39;)
SET IDENTITY_INSERT [xxx].[dbo].[t_test] OFF</span>

只是在显示插入值的时候的时候需要制定列名,同时打开允许显示插入的INDENTITY_INSERT,才能够插入!

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

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn