关于Update 更新过后的数据问题?

ShapeRock 2003-03-25 10:45:07
表AAA
id the1
1 2
2 4
3 6
4 8
declare @id int
Update AAA set the1=(Select the1 from AAA where id=1)+1
此句执行后 表AAA为
id the1
1 3
2 3
3 3
4 3
也就是说更新完id.1行后,在更新id.2,id.3,id.4时去读id.1的the1时,读出的是2,而不是更新后的3,请问是不是有什么设置或方法让更新id.1的the1后读the1的值是更新后的值 ?
...全文
39 点赞 收藏 10
写回复
10 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
pengdali 2003-03-25
你是想
Update AAA set the1=isnull((Select the1 from AAA where id=AAA.id-1),the1)
但我也想呀!可是sql2k没有这个功能呀!不知道sql2003有没有
回复
yoki 2003-03-25
关注
回复
Niguna 2003-03-25
好象没有这样的方法
但是可以通过临时表或临时字段实现
把每次得到的字段赋予一中间字段
嘿嘿~~
回复
流星尔 2003-03-25
表AAA
id the1
1 2
2 4
3 6
4 8

得到什么样的结果,是这个吗,
id the1
1 3
2 2
3 2
4 2

create trigger update_the1 on aaa
for update
as
if exists(select id from deleted where id=1)
update aaa set the1=b.the1 from aaa a,deleted b where a.id=b.id and a.id<>1
回复
ShapeRock 2003-03-25
我晕了。
回复
CrazyFor 2003-03-25
好象没有这样的方法。
回复
pengdali 2003-03-25
游标??
不如用临时表,你要知道你有===>超过几十万条数据,慢!
回复
ShapeRock 2003-03-25
楼上的有理。但Curosr能保证顺序吗?
select * from TheA order by id.当记录超过几十万条还能保证是按id的顺序排列吗?
回复
leimin 2003-03-25
我也看过你地关于要获得UPDATE更新记录地顺序地帖子,我认为用CURSOR是最合适和安全地,应为UPDATE地顺序和INDEX和PAGE 和字符集...都有关系,并且WIN2K是可以自由更改而且每一个TABLE都有可能不一样。
所以我地意见是用CURSOR.
回复
leimin 2003-03-25
TO:楼主
请问是不是有什么设置或方法让更新id.1的the1后读the1的值是更新后的值 ?
用CURSOR不是非常地方便何合适么!
回复
相关推荐
发帖
疑难问题
创建于2007-09-28

2.1w+

社区成员

MS-SQL Server 疑难问题
申请成为版主
帖子事件
创建了帖子
2003-03-25 10:45
社区公告
暂无公告