| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 860 人关注过本帖
标题:在过程中insert一条数据后,取出标识列。在并发情况中的疑问??
取消只看楼主 加入收藏
changjie
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-4-18
结帖率:100%
收藏
 问题点数:0 回复次数:1 
在过程中insert一条数据后,取出标识列。在并发情况中的疑问??

create procedure addArticle_type
as
insert into slave_article_type (T_title,T_admin,T_picPath,T_width,T_height) --添加
values ('网络技术','changjie',default,default,default)
select scope_identity() --查了下网上的话法,给出的解释是在 (任何会话当前作用域所有表)


比如有这样一个过程,在我insert一条数据后,然后马上取出这个标识。

假如有很多用户添加数据, 在我自己的会话中,还没有把这个标识列取出, 又被另外一个用户更改了这个标识列。

我要怎么才能保证这个标识列是我自己的呢??

或者说我现在的这种理解完全走入了误区。 还请高手指点。

搜索更多相关主题的帖子: insert 疑问 数据 
2007-01-28 16:22
changjie
Rank: 1
等 级:新手上路
帖 子:34
专家分:0
注 册:2006-4-18
收藏
得分:0 

强列支持版主来个,事务,锁, 的讨论。

版主所说的放在事务中,我也想过,但是总觉的还是不妥。
事务保证当前的这个批处理的完整性。 而这里取scope_identity() 是(所有会话所有表当前作用域--其实这句话也是看的一知半解) 的最后的一个identity
但这个事务中,也不能保证,其他用户添加记录啊而改变最后的identity啊。

对于并发问题,不明白的还真多,但这恰恰又是个重点, 还多请前辈们多多指教。

2007-01-28 22:38
快速回复:在过程中insert一条数据后,取出标识列。在并发情况中的疑问??
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.011341 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved