@@求一个触发器!邹建和其他大哥进!!! re 也是 int 型的,允许为空 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 我觉得这样处理没有意义(所以只是想了一下有没有实现的可能和大致的算法,实际的东西不想写)a.首先是代价太大,效率极低,很容易堵塞其他进程,导致软件工作不正常 这样删除一个的话,要把所有的子都更新一次,而这个子的编号一改,又会影响到编号比它大的,这样一连串的更新,相当就是把整个表的编号重新排一次 如果是同时删除多个的话,还要用游标来逐个处理,这样就会把一个表更新几次 如果还要考虑更新级联的表,维持它们之间的关系的话,这个更新的代价更大b.控制不好,容易出错,而且一出错可能会导致整个数据之间的关系混乱,所以整个处理必须全程用事务处理,这也很容易堵塞其他进程,导致死锁,最后是大家都做不了事c.与实际处理可能有出入,一般一个类别的编号定下来是多少,就是多少,这样才能体现历史数据的继承性,因为很多历史数据都是要备查的,你这样一改,历史数据全变了,如果有的是打印出来的,还会给以后查错带来麻烦 --查询缺少的最小id--示例数据declare @t table(id int)insert @t select 1union all select 2union all select 3--查询select min(id)+1 from(select id=0 union all select id from @t) awhere not exists(select * from @t where id=a.id+1) 求一个SQL:分区排名 合并多个表的问题 一个小问题,select 一个查询的问题,立即解决,立即给分 sql server2000 记录无法一次性删除 中断某进程 [DBNETLIB][ConnectionOpen (Connect()).]SQL Server 不存在或拒绝访问 我可以在存储过程执行非常复杂的计算吗? 急!如何取得exec('select col1 from '+@tablename)返回的结果!在线等待! CreateTable谁会? 字符串排序 如何恢复删除的数据库文件???高分
这样删除一个的话,要把所有的子都更新一次,而这个子的编号一改,又会影响到编号比它大的,这样一连串的更新,相当就是把整个表的编号重新排一次
如果是同时删除多个的话,还要用游标来逐个处理,这样就会把一个表更新几次
如果还要考虑更新级联的表,维持它们之间的关系的话,这个更新的代价更大b.控制不好,容易出错,而且一出错可能会导致整个数据之间的关系混乱,所以整个处理必须全程用事务处理,这也很容易堵塞其他进程,导致死锁,最后是大家都做不了事c.与实际处理可能有出入,一般一个类别的编号定下来是多少,就是多少,这样才能体现历史数据的继承性,因为很多历史数据都是要备查的,你这样一改,历史数据全变了,如果有的是打印出来的,还会给以后查错带来麻烦
declare @t table(id int)
insert @t select 1
union all select 2
union all select 3--查询
select min(id)+1
from(select id=0 union all select id from @t) a
where not exists(select * from @t where id=a.id+1)