用的什么库?要是SQL SERVER,可以在触发器里面写 for delete事件 update 表 set A_ID = A_ID - 1 where A_ID < deleted.A_ID 也可以写Delphi代码控制, 在ADOQUERY的beforeDelete前把A_ID值保存下来,再在AfterDelete后利用TADOCOMMAND写SQL语句更新 update 表 set A_ID = A_ID - 1 where A_ID < :OLD_A_ID
是SQL数据库,谢谢楼上。试一下。
-更新操作记录后的记录ID declare @id int select @id = 2 --删除 delete from tb where id = @id update tb set id = id - 1 where id > @Id --插入 update tb set id = id + 1 where id >= @Id insert into tb(id) select @id
[Quote=引用 1 楼 flychenjun 的回复:] 用的什么库? 要是SQL SERVER,可以在触发器里面写 for delete事件 SQL codeupdate 表 set A_ID = A_ID - 1 where A_ID < deleted.A_ID 应该是'>'吧
有些数据库支持 rowid的虚拟字段,这样你的a_id就不需要了, 触发器也不用,直接select a.rowid, a.* from table as a
for delete事件
update 表 set A_ID = A_ID - 1 where A_ID < deleted.A_ID 也可以写Delphi代码控制,
在ADOQUERY的beforeDelete前把A_ID值保存下来,再在AfterDelete后利用TADOCOMMAND写SQL语句更新
update 表 set A_ID = A_ID - 1 where A_ID < :OLD_A_ID
-更新操作记录后的记录ID
declare @id int
select @id = 2
--删除
delete from tb where id = @id
update tb set id = id - 1 where id > @Id
--插入
update tb set id = id + 1 where id >= @Id
insert into tb(id) select @id
用的什么库? 要是SQL SERVER,可以在触发器里面写
for delete事件 SQL codeupdate 表 set A_ID = A_ID - 1 where A_ID < deleted.A_ID 应该是'>'吧