`
pavel
  • 浏览: 928426 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

insert into 后获得自动插入的id(select @@identity)

阅读更多

当运行完插入语句后,执行select   @@identity就可得到自动生成的id

如果是sql server 最好用select SCOPE_IDENTITY() as id
因为@@identity全局的

同类还有IDENT_CURRENT(‘table’)

IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值

SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。

分享到:
评论

相关推荐

    SQL Server 之 SET IDENTITY_INSERT

    - 使用完`SET IDENTITY_INSERT`后,最好将其设置回`OFF`状态,以避免后续插入操作出现意外情况。 8. **权限管理**: 要使用`SET IDENTITY_INSERT`,用户必须具有相应的权限。默认情况下,`sysadmin`角色、数据库...

    Set IDENTITY _INSERTY用法

    INSERT INTO products2 (id, product) SELECT id, product FROM products; ``` **结果分析:** 这样做可以更加精确地控制哪些字段会被插入到新表中。 #### 3. 使用注意事项 - 对于每个需要插入带有 `IDENTITY` 值...

    @@IDENTITY与SCOPE_IDENTITY()

    `@@IDENTITY`是一个系统变量,它返回的是在当前会话中,最近一次执行的INSERT、SELECT INTO或大容量复制语句所生成的标识值。这意味着,如果在同一个会话中有多个表插入操作,`@@IDENTITY`将返回最后一个生成的标识...

    向数据库中插入数据并返回当前插入的行数及全局变量@@IDENTITY应用

    然后,`SELECT @@IDENTITY AS ID`语句会返回新插入行的ID值,也就是自动增长列的最新值。这对于我们判断是否成功插入一行数据非常有用。 如果需要进行批量插入,例如一次插入多行数据,`@@IDENTITY`仍然可以发挥...

    对有insert触发器表取IDENTITY值时发现的问题

    会自动往T2表里面插一条记录 这样当我在T1表上插入新的数据时,取@@IDENTITY的时候,返回的id值是T2表里面的新记录的值 赶快查了下msdn,原来@@IDENTITY还有这么多讲究: 在一条 INSERT、SELECT INTO 或大容量复制语句...

    解决SQLServer最大流水号的方法

    insert into max_trade_id values(@myglobal_id) select @mytradeid = id from max_trade_id where global_id = @myglobal_id select @mytradeid ``` 在上面的代码中,我们首先创建了一个名为 max_tradeid 的表,...

    sql语句返回主键SCOPE_IDENTITY()

    SELECT SCOPE_IDENTITY() 获取SQL-SERVER数据库insert into操作的主键返回值,SCOPE_IDENTITY 插入一条记录后想要立刻获取其数据表中的主键返回值。这个主键是自动生成的,其实实现的方式有很多,比如再进行一次查询...

    Identity用法

    - **数据插入**:在进行大量数据插入操作时,可以使用 `Identity` 列自动为主键分配值,简化数据录入过程。 - **数据检索**:通过 `Identity` 列可以快速定位到特定记录。 - **数据关联**:多个表之间可以通过 `...

    获取插入记录ID(2.0)

    4. **启用`IDENTITY INSERT`**:如果数据库表的主键是自动增长的,需要在插入特定值时临时开启`IDENTITY INSERT`。不过,在大多数情况下,我们不需要手动插入这个值,而是让数据库自动处理。 5. **执行插入操作并...

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

    `id`字段是定义为`int identity`的自动增长列,这意味着每当有新记录插入时,这个字段的值会自动增加。`CreatedDate`字段则用来存储记录的创建日期。 在SQL Server 2005及更高版本中,我们可以使用`OUTPUT`子句来...

    sql 表导出生成脚本.txt

    INSERT INTO #columninfo(name, usertype) SELECT name, type FROM syscolumns C WHERE id = @tableid AND type <> 37; -- 排除时间戳列 -- 构建插入语句的左侧部分 SELECT @leftpart = 'SELECT ''INSERT INTO' +...

    使用SQL Server 获取插入记录后的ID(自动编号)

    在SQL Server中,获取插入记录后的ID(通常指的是自动编号字段的值)是常见的操作,尤其是在需要关联新插入数据与其他表记录的情况下。本篇文章主要介绍了几种在SQL Server中获取自增ID的方法,针对SQL Server 2000...

    MySQL查询插入语句

    这个特性在执行插入操作后获取新插入记录的ID时非常有用。例如,在上面的代码中,使用了`@@IDENTITY`来获取刚刚插入的记录ID: ```csharp BackBZID = Convert.ToInt32(TPMySqlHelper.GetSingle("INSERT INTO TP_BZ_...

    将sqlserver表中指定数据转化为insert语句

    SELECT @sql += 'INSERT INTO NewTable (' + STUFF((SELECT ', ' + QUOTENAME(c.name) FROM sys.columns c WHERE c.object_id = OBJECT_ID('OldTable') AND c.is_identity = 0 FOR XML PATH('')), 1, 2, '') + '...

    五种提高 SQL 性能的方法

    另一种方法是创建一个 FOR INSERT 触发器,自动返回 IDENTITY 值: ```sql CREATE TRIGGER trProducts_Insert ON Products FOR INSERT AS SELECT @@IDENTITY GO ``` 这样,每次向 Products 表插入数据时,触发器...

    五种提高SQL性能的方法

    另一种方法是创建一个FOR INSERT触发器,每次向表中插入数据时自动返回IDENTITY值,这样可以保持代码的一致性和效率。 ```sql CREATE TRIGGER trProducts_Insert ON Products FOR INSERT AS SELECT @@IDENTITY; GO...

    导出insert语句的存储过程sql脚本

    如果存在IDENTITY列,在生成完INSERT语句后,关闭`IDENTITY_INSERT`功能。 ```sql if @ident is not null print 'SET IDENTITY_INSERT ' + @TableName + ' OFF' ``` ### 总结 该存储过程提供了一种简单有效的...

    四项技术 助你提高SQL Server的性能

    在执行INSERT语句后,有时我们需要立即获取新插入行的IDENTITY值。使用`@@IDENTITY`函数可以获取最近一次插入操作产生的IDENTITY值。然而,需要注意的是,`@@IDENTITY`返回的是当前会话中最后生成的IDENTITY值,而不...

    利用SQL语句自动生成序号的两种方式.docx

    SELECT @ID = MAX(ID) FROM CustomIDTest WHERE ID >= @MinIDInYear AND ID <= @MaxIDInYear IF @ID IS NOT NULL AND @Year = @ID / 10000 SET @ID = @ID + 1 ELSE SET @ID = @MinIDInYear RETURN @ID END `...

Global site tag (gtag.js) - Google Analytics