社区
MS-SQL Server
帖子详情
求一条sql语句实现插入数据并返回这条记录的id
littlelam
2006-08-31 10:35:24
表[TableA]结构:id,username,password
id为种子
用一条sql语句实现插入('小明','123456')并返回这条记录的id
注意:要用一条语句实现!!!
...全文
1275
15
打赏
收藏
求一条sql语句实现插入数据并返回这条记录的id
表[TableA]结构:id,username,password id为种子 用一条sql语句实现插入('小明','123456')并返回这条记录的id 注意:要用一条语句实现!!!
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
littlelam
2006-08-31
打赏
举报
回复
http://www.sql-club.com/wangyong/archive/2006/04/18/507.aspx
Select @@IDENTITY,很多程序员常用的语句。
通常情况下,这样的使用没有问题。但如果被插入数据的表上有Insert触发器,而这个触发器中有正好有了Insert动作,那么Select @@IDENTITY返回的值也许就不是预期的了。有了引子,后面偷个懒,Copy from online help.
在返回插入到表的 @@IDENTITY 列的最后一个值方面,@@IDENTITY、SCOPE_IDENTITY 和 IDENT_CURRENT 函数类似。
@@IDENTITY 和 SCOPE_IDENTITY 将返回在当前会话的所有表中生成的最后一个标识值。但是,SCOPE_IDENTITY 只在当前作用域内返回值,而 @@IDENTITY 不限于特定的作用域。
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值。
作用域:一个作用域就是一个模块——存储过程、触发器、函数或批处理。因此,如果两个语句处于同一个存储过程、函数或批处理中,则它们位于相同的作用域中。
================
结贴
specialsoldier
2006-08-31
打赏
举报
回复
如果insert有返回值的话就号办了 可惜...
killxtt
2006-08-31
打赏
举报
回复
不清楚,mark,学习一下。
IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回任何会话和任何作用域中为特定表生成的标识值
用这个呢
xyxfly
2006-08-31
打赏
举报
回复
如果非要一条语句,应该只能耍无奈吧
呵呵
select @@identity 会不会不是期望的结果 我觉得应该会,@@identity: 返回目前session,所有范围(scope)中,任何表所生成的最后一个IDENTITY值
因为前面说了是当前session
MS应该会有考虑吧,高手指正 ^_^
littlelam
2006-08-31
打赏
举报
回复
返回这条记录的id? 必然要有一条显示ID的语句,
而Insert不可能完成返回显示ID的功能。
=================================
那就是出题目的人的问题了,先不管这个了
帮忙回答这个问题,分不够可再+
@@identity: 返回目前session,所有范围(scope)中,任何表所生成的最后一个IDENTITY值
=========================================
如果其它表也同时数据插入的话,select @@identity 会不会不是期望的结果?
WangZWang
2006-08-31
打赏
举报
回复
返回这条记录的id? 必然要有一条显示ID的语句,
而Insert不可能完成返回显示ID的功能。
littlelam
2006-08-31
打赏
举报
回复
@@identity: 返回目前session,所有范围(scope)中,任何表所生成的最后一个IDENTITY值
=========================================
如果其它表也同时数据插入的话,select @@identity 会不会错误?
littlelam
2006-08-31
打赏
举报
回复
这种就算一条语句那我无语.那个主考的人可以挂了
==============================================
exec('insert tablea select ''小明'',''123456''
select @@identity')
这应该算两句。。
================================
出题目的人没给出正确答案,如果没有人给出一句的等下就结贴。
九斤半
2006-08-31
打赏
举报
回复
呵呵,要是我也答不出来~~~
fcuandy
2006-08-31
打赏
举报
回复
这种就算一条语句那我无语.那个主考的人可以挂了
littlelam
2006-08-31
打赏
举报
回复
xyxfly(小虾米......BS问题解决不结贴)
正解
能说下这句
insert tablea select '小明','123456' select @@identity
是意思吗?
abc_sk
2006-08-31
打赏
举报
回复
两条语句就OK
xyxfly
2006-08-31
打赏
举报
回复
create table tablea
(
id int identity(1,1),
username varchar(100),
password varchar(100)
)
exec('insert tablea select ''小明'',''123456''
select @@identity')
这样算一句的话,呵呵^_^
littlelam
2006-08-31
打赏
举报
回复
某公司的面试题!!!
fcuandy
2006-08-31
打赏
举报
回复
不可能
sql语句
插入
一条
记录
同时获取刚
插入
的
id
sqlserver
有两种方式可以获得刚新
插入
的
id
①从inserted临时表中查询 ②使用全局变量@@
id
entity 查询 1、使用 output 关键字输出,inserted 为已
插入
的临时表,这样就可以得到刚刚
插入
该表的
id
了。 insert into t_student(name,studentno,sex,age) output inserted.
id
values(‘张连康’,‘10100...
MyBatis:
插入
一条
数据
,并
返回
这条
数据
的主键
id
MyBatis:
插入
一条
数据
,并
返回
这条
数据
的主键
id
sql中
插入
一条
记录
并获取该条
记录
的自动增长
ID
经常会用到的往
数据
库
插入
一条
记录
并获取该条
记录
的
ID
。 千万不要去,先insert into
一条
记录
,然后查询表格的最后
一条
记录
是多少,这样会有问题的,如果同时有多个连接
插入
数据
的话,你获取的可能不是你刚才的那条
记录
。 这个是比较小儿科做法,一般人估计不会这么干。 在sql2005以前很多人都是采用SELECT@@
Id
entity来获取上
一条
记录
的自动编号。 在insert i...
JdbcTemplate执行
插入
sql语句
并
返回
主键
ID
/** *
插入
数据
并返
记录
的主键
ID
* @param jdbcTemplate * @param sql * @return */ public int update
ID
(JdbcTemplate jdbcTemplate, String sql){ KeyHolder keyHolder = new GeneratedKeyHolder(); jdbcTemplate.update(new PreparedSt.
sql语句
如何在insert
一条
数据
后直接
返回
刚刚
插入
的
数据
的
ID
在insert语句之后加上: SELECT @@
ID
ENTITY 就可以立即得到之前insert
数据
的
ID
如: insert into news(newsTitle,newsContent) values('title','content') select @@
id
entity
MS-SQL Server
34,875
社区成员
254,639
社区内容
发帖
与我相关
我的任务
MS-SQL Server
MS-SQL Server相关内容讨论专区
复制链接
扫一扫
分享
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章