菜鸟求助。sql改变顺序号。要怎么操作才好?

来源:百度知道 编辑:UC知道 时间:2024/05/27 04:41:46
我是个数据库方面的菜鸟
我有一个表。有一个字段是每个记录的顺序号。。
我想完成顺序上移,下移。
因此我要2条sql语句。
就是将一条记录上移时。就把顺序号和前一条记录的顺序号对换。
将一条记录下移时。就把顺序号和后一条记录的顺序号对换。
我想如果执行2条sql的话。
如果多个用户连到这个数据库上的时候。都在改顺序。这时有可能会引起混乱,是吧。比如一个用户正好执行完第一条SQL。另一个用户又执行sql。这时就应该发生错误了吧。

请问用什么方法才能一次执行完这2条sql。因为这两条sql是相互关联的。让它们一次执行完。如果一条没执行完。另一条也取消。数据库是sql2000.。

请各位大大指教!!
比如
a 1
b 2
c 3
d 4
变成
a 1
b 3
c 2
d 4

1.用事务处理,这个就不用细说了,这样,只有你的事务块作完了,才会释放改过的数据库修改权。
BEGIN GRANSACTION
UPDATE 。。。。--更改顺序号,几条语句都行。
COMMIT TRANSACTION
2.使用一条件语句这样:
设你要修改的记录号为@I,与@I-1对调,序号字段名为recno
UPDATE TABLENAME SET RECNO=CASE WHEN RECNO=@I THEN @I-1 ELSE @I END WHERE RECNO=@I OR RECNO=@I-1

没完全听明白你的意思,不过你可以试着换一换思路去解决这个问题.

顺序号的字段还是不要动它,可以增加一个字段,用来记录SQL对该记录的访问次数,即每次有动作访问这条记录时,这个字段就增加一次记数.