永发信息网

SQLSERVER 中有没有和MySQL LAST_INSERT_ID()函数等价的函数?

答案:2  悬赏:40  手机版
解决时间 2021-04-09 19:02
不明白LAST_INSERT_ID()的请参考如下页面:
http://dev.mysql.com/doc/refman/5.1/zh/tutorial.html#example-auto-increment

不许答诸如"SELECT出最大值"之类的破答案,这样在多用户操作的时候很难保障是正确的.

今天中午12:00前能解决的答复加30分.
iphacker的答案不行,直接把SQLSERVER的联机手册贴上来了,这个解决不了问题吖.不过还是谢了.
我要的是和MySQL LAST_INSERT_ID()函数等价的函数,或者有没有其它等价的东西?

问题内部解决了:答案是
SELECT @@IDENTITY AS 'Identity'
最佳答案
Transact-SQL 参考

IDENTITY(属性)
在表中创建一个标识列。该属性与 CREATE TABLE 及 ALTER TABLE Transact-SQL 语句一起使用。

说明 IDENTITY 属性与 SQL-DMO Identity 属性不同,后者表现列的行标识属性。

语法
IDENTITY [ ( seed , increment ) ]

参数
seed

装载到表中的第一个行所使用的值。

increment

增量值,该值被添加到前一个已装载的行的标识值上。

必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。

注释
如果在经常进行删除操作的表中存在着标识列,那么在标识值之间可能会产生差距。如果这构成了问题,那么请不要使用 IDENTITY 属性。但是,为了确保未产生差距,或者为了弥补现有的差距,在用 SET IDENTITY_INSERT ON 显式地输入标识值之前,请先对现有的标识值进行计算。

如果重新使用已删除的标识值,那么请使用示例 B 中的示例代码进行检查,以获得下一个可用的标识值。请用您的表名、标识列数据类型以及(该数据类型的)最大可允许值的数值 –1 替换 tablename、column_type 和 max(column_type) – 1。

使用 DBCC CHECKIDENT 检查当前的标识值,并将其与标识列中的最大值进行比较。

当将 IDENTITY 属性与 CREATE TABLE 一起使用时,Microsoft® SQL Server™ 使用 CREATE TABLE 的 NOT FOR REPLICATION 选项替代标识列的自动增加。通常,SQL Server 给插入表中的每个新行指派一个值,该值比前面的最高值要大出某些增量。但是,如果新行是由另一个数据源复制过来的,那么标识值必须保持与其在数据源中完全相同。

示例
A. 将 IDENTITY 属性与 CREATE TABLE 一起使用
下面的示例创建一个新表,该表将 IDENTITY 属性用于获得自动增加的标识号。

USE pubs
IF EXISTS(SELECt TABLE_NAME FROM INFORMATION_SCHEMA.TABLES
WHERe TABLE_NAME = 'new_employees')
DROP TABLE new_employees
GO
CREATE TABLE new_employees
(
id_num int IDENTITY(1,1),
fname varchar (20),
minit char(1),
lname varchar(30)
)
全部回答
transact-sql 参考 identity(属性) 在表中创建一个标识列。该属性与 create table 及 alter table transact-sql 语句一起使用。 说明 identity 属性与 sql-dmo identity 属性不同,后者表现列的行标识属性。 语法 identity [ ( seed , increment ) ] 参数 seed 装载到表中的第一个行所使用的值。 increment 增量值,该值被添加到前一个已装载的行的标识值上。 必须同时指定种子和增量,或者二者都不指定。如果二者都未指定,则取默认值 (1,1)。 注释 如果在经常进行删除操作的表中存在着标识列,那么在标识值之间可能会产生差距。如果这构成了问题,那么请不要使用 identity 属性。但是,为了确保未产生差距,或者为了弥补现有的差距,在用 set identity_insert ...为了确保未产生差距,1)。 当将 identity 属性与 create table 一起使用时。通常。 示例 a,那么在标识值之间可能会产生差距、column_type 和 max(column_type) – 1, fname varchar (20),1)。该属性与 create table 及 alter table transact-sql 语句一起使用,sql server 给插入表中的每个新行指派一个值、标识列数据类型以及(该数据类型的)最大可允许值的数值 –1 替换 tablename,则取默认值 (1,以获得下一个可用的标识值, increment ) ] 参数 seed 装载到表中的第一个行所使用的值;) drop table new_employees go create table new_employees ( id_num int identity(1transact-sql 参考 identity(属性) 在表中创建一个标识列,或者为了弥补现有的差距; 使用 create table 的 not for replication 选项替代标识列的自动增加。请用您的表名。但是,或者二者都不指定,那么请不要使用 identity 属性,该值比前面的最高值要大出某些增量。 注释 如果在经常进行删除操作的表中存在着标识列; sql server™.tables where table_name = '. 将 identity 属性与 create table 一起使用 下面的示例创建一个新表,后者表现列的行标识属性,请先对现有的标识值进行计算。 语法 identity [ ( seed ,那么标识值必须保持与其在数据源中完全相同,那么请使用示例 b 中的示例代码进行检查。 必须同时指定种子和增量。但是。 如果重新使用已删除的标识值,如果新行是由另一个数据源复制过来的,并将其与标识列中的最大值进行比较。 use pubs if exists(select table_name from information_schema。 increment 增量值,该值被添加到前一个已装载的行的标识值上。 说明 identity 属性与 sql-dmo identity 属性不同,在用 set identity_insert on 显式地输入标识值之前;new_employees'。如果二者都未指定,microsoft®,该表将 identity 属性用于获得自动增加的标识号。如果这构成了问题, minit char(1)。 使用 dbcc checkident 检查当前的标识值
我要举报
如以上问答信息为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
祝福鲁迅划分情节结构,鲁迅《祝福》怎么分段
There is not much time left; So I'll tell
独立显卡把6p线接上开机所有风扇就动一下!如
大嘴巴休闲零食铺地址在哪,我要去那里办事
怎样把电脑主机里的小风扇不用电用磁铁让它转
我拒绝用英文怎么说,日语中委婉拒绝的表达形
单选题2010年春季,我国部分农产品价格暴涨,
水鬼为什么要吃人
生病送什么花,女孩生病了送什么花好?
玩DNF用什么主板好?
— How come you are here?— I came here fo
厦门在春节期间的温度大概是多少?要穿什么衣
托菲诺幼儿园地址有知道的么?有点事想过去
杜甫诗歌的基本风格,诗圣杜甫的诗具有什么风
山东二级建造师注册时身份证和毕业证原件是省
推荐资讯
你好,我是一工科女生,毕业工作两年时间了,
苦难与幸福的名言警句,和 牵手 类似描述幸福
做了喉镜两小时后可以吃饭吗
单选题列宁说:“如果没有战争,俄国也许几年
桑树花是什么气味的
澳柯玛的小龟王 3100元购买值不值得
终极系列修帮助汪大东王亚瑟丁小雨 三人恢复
形容本来热闹,现在安静的诗句
男,黑色羽绒马甲搭配什么裤子
学天文好吗?
单选题Idon’thave______moneyatthemoment.
如图,A、B、C是⊙O上三点,∠ACB=40°,则∠
正方形一边上任一点到这个正方形两条对角线的
阴历怎么看 ?