社区
应用实例
帖子详情
如何在一个存储过程中获取用inser插入的纪录
weekhb
2005-10-03 05:36:23
我有一个表 t (id为自动加1的序号)
id a
1 test
2 test2
我用 insert into t (a) values (test3)
我如何取这条纪录的id值
...全文
149
11
打赏
收藏
如何在一个存储过程中获取用inser插入的纪录
我有一个表 t (id为自动加1的序号) id a 1 test 2 test2 我用 insert into t (a) values (test3) 我如何取这条纪录的id值
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
11 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
moodboy1982
2005-10-07
打赏
举报
回复
关注一下。
iwl
2005-10-07
打赏
举报
回复
MorningTea(一勺抹茶) 正解
wushimiang12
2005-10-04
打赏
举报
回复
學習中
wushimiang12
2005-10-04
打赏
举报
回复
MorningTea(一勺抹茶) ( )
樓上大哥正解
MorningTea
2005-10-03
打赏
举报
回复
为了避免@@IDENTITY的并发问题,在一般的批处理或存储过程中,最常用也比较保险的还是SCOPE_IDENTITY函数,尤其在处理流程中涉及触发器的情形。
MorningTea
2005-10-03
打赏
举报
回复
就是要获得最后的identity值:
SQL Server 2000中,有三个比较类似的功能:他们分别是:SCOPE_IDENTITY、IDENT_CURRENT 和 @@IDENTITY,它们都返回插入到 IDENTITY 列中的值。
IDENT_CURRENT 返回为任何会话和任何作用域中的特定表最后生成的标识值。IDENT_CURRENT 不受作用域和会话的限制,而受限于指定的表。IDENT_CURRENT 返回为任何会话和作用域中的特定表所生成的值。
例如:select ident_current('表名') as '当前标识值'
@@IDENTITY 返回为当前会话的所有作用域中的任何表最后生成的标识值。
例如:select @@identity
SCOPE_IDENTITY 返回为当前会话和当前作用域中的任何表最后生成的标识值
SCOPE_IDENTITY 和 @@IDENTITY 返回在当前会话中的任何表内所生成的最后一个标识值。但是,SCOPE_IDENTITY 只返回插入到当前作用域中的值;@@IDENTITY 不受限于特定的作用域。
例如:select SCOPE_IDENTITY()
举例:
create table #test(sn int identity(1,1),des varchar(10))
insert into #test select '10'
create table #testA(sn int identity(2,1),des varchar(10))
insert into #testA select '10'
-- (des)
select * from #test
select @@identity as '@@identity'
select ident_current('#test') as 'ident_current'
select SCOPE_IDENTITY() as 'SCOPE_IDENTITY'
/*
(1 row(s) affected)
(1 row(s) affected)
sn des
----------- ----------
1 10
(1 row(s) affected)
@@identity
----------------------------------------
2
(1 row(s) affected)
ident_current
----------------------------------------
1
(1 row(s) affected)
SCOPE_IDENTITY
----------------------------------------
2
(1 row(s) affected)
*/
$扫地僧$
2005-10-03
打赏
举报
回复
CREATE PROCEDURE Temp_T(@Temp2 as int OUTPUT)
as
insert into t (a) values ('test3')
SELECT @Temp2=@@IDENTITY
DECLARE @Temp as int
exec Temp_T @Temp OUTPUT
print @Temp
weekhb
2005-10-03
打赏
举报
回复
假如id 字段為Identity的話
隻需要這樣 print @@indentity
是int类型,
--------------------------------------------
select id from tablename where a='test3'
问题时a=test3的可能会很多,id才是不重复的,a里面会有重复
lxzm1001
2005-10-03
打赏
举报
回复
select id from tablename where a='test3'
talantlee
2005-10-03
打赏
举报
回复
假如不是的話,那它為null
talantlee
2005-10-03
打赏
举报
回复
假如id 字段為Identity的話
隻需要這樣 print @@indentity
mysql
存储过程
after_MySQL——视图\事务\
存储过程
今日内容视图触发器事务
存储过程
内置函数流程控制索引视图# 1、什么是视图?视图就是通过查询得到的一张虚拟表,然后保存下来,下次直接使用即可# 2、为什么使用视图?如果频繁的使用一张虚拟表,可以不用反复的查询# 3、如何使用视图?create view teacher2course asselect * from teahcer inner join course on teacher.tid = ...
MySQL——视图\事务\
存储过程
今日内容 视图 触发器 事务
存储过程
内置函数 流程控制 索引 视图 # 1、什么是视图? 视图就是通过查询得到的一张虚拟表,然后保存下来,下次直接使用即可 # 2、为什么使用视图? 如果频繁的使用一张虚拟表,可以不用反复的查询 # 3、如何使用视图? create view teacher2course as select * from teahcer inner join co...
mysql
插入
更新语句
INSER
T ... ON DUPLICATE KEY UPDATE死锁问题
在开发
中
,可能会碰到这样的场景,往数据库
中
插入
一条记录,如果记录存在的话则更新原
纪录
。在mysql
中
,mysql5.0支持了这样的需求,
INSER
T ... ON DUPLICATE KEY UPDATE语句就是用来处理这样的需求。当
插入
一条记录时会判断是否存在相同主键的记录。 但这个语句本身存在一些缺陷: 首先他是根据主键进行判断
插入
更新的,当mysql执行
INSER
T ON DUPLIC...
【每日一练:SQL】使用一条SQL求出四个球队所有比赛组合
SQL题目:
一个
表team,里面只有
一个
字段name, 一共有4条
纪录
,分别是a,b,c,d, 对应四个球队,现在四个球队进行比赛, 用一条sql语句显示所有可能的比赛组合。 解决: 数据库版本:Oracle 11g --创建表和
插入
数据 create table team(name varchar2(30));
inser
t into team values('a');
inser
...
转帐事务及SQL范例编程
转账事务 先建立数据环境(帐户表) 1.转账事务(使用在
存储过程
中
) if exists(select name from sysobjects where name = 'zhuanzhang' and type='p') drop procedure zhuanzhang go --建立
一个
带有参数的转账
存储过程
-- ...
应用实例
27,582
社区成员
68,544
社区内容
发帖
与我相关
我的任务
应用实例
MS-SQL Server 应用实例
复制链接
扫一扫
分享
社区描述
MS-SQL Server 应用实例
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章