sqlserver 自增ID插入指定数据

set identity_insert 表名 ON --允许对自增列Id插入指定数据
insert into table_name(Id,Name) values(1,‘test‘)
set identity_insert 表名 OFF --关闭对自增列Id插入指定数据

注意:

1.set identity_insert只对当前会话生效。

2.set identity_insert 表名 ON 设置后,必须显示指定Id,否则插入错误。如insert into table_name values(‘111‘)将报错。

向自增ID插入指定值。 报错:“当 IDENTITY_INSERT 设置为 OFF 时,不能为表 ‘ ‘ 中的标识列插入显式值”。

插入语句未显示指定ID。 报错:“仅当使用了列列表并且 IDENTITY_INSERT 为 ON 时,才能为表‘ ‘中的标识列指定显式值”。

时间: 2024-12-19 23:07:18

sqlserver 自增ID插入指定数据的相关文章

SQL 如何在自增列插入指定数据

SQL Server  中数据表往往会设置自增列,常见的比如说 首列的ID列. 往数据表插入新数据的时候,自增列是跳过的,无需插入即会按照设置的自增规则进行列增长.那么,如果我们想往自增列插入我们指定的数据时该怎么做呢?  一:建立一张简单的测试表 CREATE TABLE randy_test (id INT IDENTITY(1,1), num INT) 二:如果强行插入数据时: INSERT INTO randy_test VALUES (1,11) 消息 8101,级别 16,状态 1,

SQLServer用存储过程实现插入更新数据

实现 1)有相同的数据,直接返回(返回值:0): 2)有主键相同,但是数据不同的数据,进行更新处理(返回值:2): 3)没有数据,进行插入数据处理(返回值:1). [创建存储过程] Create proc Insert_Update @Id varchar(20), @Name varchar(20), @Telephone varchar(20), @Address varchar(20), @Job varchar(20), @returnValue int output as declar

sql 定义自增id插入数据

-- 定义一个自增变量 set @i=0; -- 执行自增语句 Select @i:=@i+1,sponsorbroker,'01',1000,'2014-12-31',0,0 from stock_listing_detailed_info group by sponsorbroker;

mybatis自增id绑定数据库数据和内存对象的id

mybatis中如果一个表数据存在一对多,保存一个数据的时候或许需要进行另外一张表的操作,用id关联,但是前台的新增数据id是数据库自动生成的,那么就需要在保存该 数据后,在java中获取其id,而不是在数据中反查,如果是在java中用某种规则生成其id则也不存在问题.mybatis有一个针对自动生成id的时候的一种id和对象绑定标签配置 <insert id="insert" useGeneratedKeys="true" keyProperty="

mysql 插入数据后返回当前的自增ID方法

存储过程的写法: mysql>create procedure test( ->in username varchar(50), ->in password varchar(50), ->out userid int) ->begin ->set @sql=concat("insert into user(`username`,`password`) values(' ",username,"' ,' ",password,&qu

mysql插入数据后返回自增ID的方法

mysql插入数据后返回自增ID的方法 mysql和oracle插入的时候有一个很大的区别是,oracle支持序列做id,mysql本身有一个列可以做自增长字段,mysql在插入一条数据后,如何能获得到这个自增id的值呢? 方法一:是使用last_insert_id mysql> SELECT LAST_INSERT_ID(); 产生的ID 每次连接后保存在服务器中.这意味着函数向一个给定客户端返回的值是该客户端产生对影响AUTO_INCREMENT列的最新语句第一个 AUTO_INCREMEN

Postgresql插入数据返回自增id

Postgresql插入数据返回自增id 一.设置自增id 新建字段  并且将字段属性设置为serial 二.插入返回 insert语句增加return 例如:insert into point(pointtype,pointx,pointy,pointval)values(1,2,3,4) RETURNING id;

MySQL获得指定数据表中auto_increment自增id值的方法及实例

http://kb.cnblogs.com/a/2357592/很多情况下,我们要提前用到当前某个表的auto_increment自增列id,可以通过执行sql语句来查询到这个id值. show table status where name=’表名’ 或者 show table status like ‘表名’ 然后从查询到的结果集中获得auto_increment的值 代码实例:<?php mysql_connect("localhost","root",

如何获得插入当前语句的时候,自增ID的值

既然是自增的数据列, 那么此时插入的这一条数据应该是最后一条,其ID 应该是最大的 可以使用  select max(ID) from table; 但是有一个问题,如果是一个正在使用的有着频繁插入的数据表, 当你执行完你的insert 语句之后,在你执行这条select 语句之前,如果有其他用户又进行了insert 操作,那么,你select 得到的ID,不一定是你这条语句的ID 所有应该使用的 是 inset into 表名(列名,列名,.. ) output inserted.ID  va