SQL获取刚插入的记录的自动增长列ID的值

假设表结构如下:

CREATE TABLE TestTable

(

  id int identity,

  CreatedDate datetime

)

SQL2005获得新增行的自动增长列的语句如下:

insert into TestTable (CreatedDate)  output  inserted.id  values (getdate())

SQL2000获得新增行的自动增长列的语句如下:

insert into TestTable (CreatedDate)  values (getdate())

select @@IDENTITY

在C#中使用ExecuteScalar()方法获得第一行第一列的值(即自增id):

object val = cmd.ExecuteScalar();

时间: 2024-10-16 09:49:42

SQL获取刚插入的记录的自动增长列ID的值的相关文章

mysql 更改自动增长列的初始值

alter table t_Myxiao7 AUTO_INCREMENT 3;   -- 从三开始 ITOKIT.COM提示:如果表中数据没有用.如果直接删除数据,自动增长ID还是不会从1开始的,可以利用“清空数据表”.这样自动增长ID也将会从1开始.

获取mybaties插入记录自动增长的主键值

首先在Mybatis Mapper文件中insert语句中添加属性"useGeneratedKeys"和"keyProperty",其中keyProperty是保存主键值的属性. 例如: <insert id="save" parameterType="Survery" useGeneratedKeys="true" keyProperty="pkId"> insert in

mysql 获取刚插入行id汇总

mysql 获取刚插入行id汇总 我们在写数据库程序的时候,经常会需要获取某个表中的最大序号数, 一般情况下获取刚插入的数据的id,使用select max(id) from table 是可以的.但在多线程情况下,就不行了. 下面介绍三种方法 (1) getGeneratedKeys()方法: 程序片断: Connection conn = ;        Serializable ret = null;        PreparedStatement state = .;       

select @@identity得到上一次插入记录时自动产生的ID

select @@identity的用法 2008-10-25 11:25:39|  分类: JSP Dev|举报|字号 订阅 用select @@identity得到上一次插入记录时自动产生的ID 如果你使用存储过程的话,将非常简单,代码如下:SET @[email protected]@IDENTITY 说明: 在一条 INSERT.SELECT INTO 或大容量复制语句完成后,@@IDENTITY 中包含此语句产生的最后的标识值.若此语句没有影响任何有标识列的表,则 @@IDENTITY

MyBatis中如何获取刚插入数据的 id

一.MyBatis中如何获取刚插入数据的 id 情景: 三张表 1.生成订单 (easybuy_order) 2.生成订单明细 (easybuy_order_detail) 3.更新商品库存 (easybuy_product) 在通过调用相应的 DAO 接口方法来实现对三张表的更新操作,并且这三步操作也是前后关联的,后一步的操作依托于上一步操作的结果,如第一步生成订单 (即在订单主表(easybuy_order)新增一条数据)之后需要获取到新增订单数据的 id 作为下一步生成订单明细的 orde

SQL SERVER 中在自动增长列中插入值

如果想在自动增长列中插入值,如果没有设置 IDENTITY_INSERT 为 ON 的话会出现如下错误 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'dbo.table' 中的标识列插入显式值. 解决问题的办法是: SET IDENTITY_INSERT [TableName] ON 在插入完成以后可以通过: SET IDENTITY_INSERT [TableName] OFF 关闭 IDENTITY_INSERT

SQL Server 2012 自动增长列,值跳跃问题

介绍 从 SQL Server 2012 版本开始, 当SQL Server 实例重启之后,表格的自动增长列的值会发生跳跃,而具体的跳跃值的大小是根据增长列的数据类型而定的.如果数据类型是 整型(int),那么跳跃值为 1000:如果数据类型为 长整型(bigint),那么跳跃值为 10000.从我们的项目来看,这种跳跃问题是不能被接受的,尤其是展示在客户端的时候.这个奇怪的问题只在 SQL Server 2012 及更高的版本中存在,SQL Server 2012之前版本不存在此问题. 背景

使用sql语句创建修改SQL Server标识列(即自动增长列)

一.标识列的定义以及特点SQL Server中的标识列又称标识符列,习惯上又叫自增列.该种列具有以下三种特点:1.列的数据类型为不带小数的数值类型2.在进行插入(Insert)操作时,该列的值是由系统按一定规律生成,不允许空值3.列值不重复,具有标识表中每一行的作用,每个表只能有一个标识列.由于以上特点,使得标识列在数据库的设计中得到广泛的使用.二.标识列的组成创建一个标识列,通常要指定三个内容:1.类型(type)在SQL Server 2000中,标识列类型必须是数值类型,如下:decima

解决SQLServer服务器重启后自动增长列倍增问题

我在使用 SQL Server 2012 时出现了自动增长列从1 2 3变成1001 1002 1003的情况,网上找了下发现说是微软故意这么弄的,要想不倍增可使用以下方法: 1.打开配置管理器(SQL Server Configuration Manager)开始-Microsoft SQL Server 2012-配置工具-SQL Server 配置管理器 2.选择你需要使用的服务器 3.点击属性 4.添加 -t272 参数,是小写,确定 5.重新启动,PS:重新启动的第一次添加还是会倍增,