教程学院
图像设计 多媒体类 机械制图 办公软件 操作系统 系统编程 网站编程 网页制作 数据库类 网络路由 网络工程 网络安全 考试认证
firefox火狐浏览器下载
酷网学院
CAD
AutoCad Cam350 ProEngineer GCcam MATLAB Unigraphics SolidWorks CAXA Solid3000 Cimatron EdgeCAM
系统
安全 防火墙 病毒 WinXP Win2003 Vista
数据库
编程
网络
精彩图库
  当前位置: 库库中文网 · 数据库类教程 · MSSQL教程 · Sql2000基础教程

怎么自动调整id

学院最新推荐文章
教程推荐
『怎么自动调整id』如果文章有大量图片,显示会较慢,请等待图片下载完成
 
点击数: 更新时间:2008-10-11 
如果有
id    info
1      sfa
2      adsf
3      dfds
4      fwef


如果删除了某一条,从它开始,下面的id全部减一,保持连续性

有哪些方法呢,通常的做法是什么呢

这个问题第1个回答:
关键要看你的id是不是Identity标识列
这个问题第2个回答:
搞一个delete触发器就是了
这个问题第3个回答:
SQL code

if object_id('test')is not null drop table test

go

create table test (id int,    info varchar(10))

insert test select 1,      'sfa' 

insert test select 2,      'adsf' 

insert test select 3,      'dfds' 

insert test select 4,      'fwef' 

if object_id('Trigger_test')is not null drop trigger Trigger_test

go

create trigger Trigger_test on test

for delete

as

  declare @Max int 

  select @max=d.id from deleted d

  update test set id=id-1 where id>@max

go

delete test where id=2

select * from test



/*

id          info       

----------- ---------- 

1           sfa

2           dfds

3           fwef

*/


这个问题第4个回答:
...........不懂


只试过用编程操作SQL语句执行,类似
SqlConnection conn=......
String text="      ".......
conn.execute(text)....
大概这样吧,忘记了.数据库只知道基本的SQL


上面两位说的方法是可以直接在数据库中一步完成的操作吗
这个问题第5个回答:
楼主朋友,你表中的id列是自增列还是普通的列,如果是自增列的话,那么用过度表做比较简单,但是不能用触发器;如果是普通的列,那么就可以用触发器来做.不管哪种方法,一步就可以完成且时间只与表记录的数量成正比关系.请楼主再明确一下问题,好给出解决方法.
这个问题第6个回答:
conn.execute("UPDATE tb SET id=id-1 WHERE id>"& DeleteId)
楼主可以想简单点撒.呵呵.


这个问题第7个回答:
SQL code

CREATE TABLE [tb11] (

    [id] [int] IDENTITY (1, 1) NOT NULL ,

    [a] [char](10) 

) 

GO



insert into tb11(a) values('1')

insert into tb11(a) values('aa')

insert into tb11(a) values('bb')



select * from tb11

--结果

id     a

1    1         

2    aa        

3    bb 

------------------------

delete from tb11 where id=2

select * from tb11

--结果

id     a

1    1        

3    bb 



select a into #a from tb11 

drop table tb11



go







create table tb11(id int IDENTITY (1, 1) NOT NULL ,a char(10))

insert into tb11

select a from #a



select *  from tb11

--结果

id      a

1    1         

2    bb        



这样又是何苦?

作者:number32… 来源:C.S.D.N
】【关闭窗口
·上页:
·下页:
相关文章
     数据库类教程 - Sql2000基础教程
普通教程周末愉快
普通教程怎么自动调整id
普通教程还原数据库时为何报磁盘空间不足
普通教程安装SQL2008出错
普通教程散分,给分到20楼,人均5分
普通教程怎么样把表1中 text2地内容 按t
普通教程ORACLE sql中地符号=:是啥意思啊
普通教程求一条SQL语句
普通教程日期段查询算法疑难
普通教程附加数据库出错:错误:602未能在
普通教程怎么更新A表中数据为B表中对应数
普通教程SQL错误7405
精彩图片汇集
advertisement
关于站点 - 广告服务 - 联系我们 - 版权隐私 - 免责声明 - 合作伙伴 - 程序支持 - 网站地图 - 返回顶部
网站文本地图
版权所有:库库中文 2005-2007 欢迎各种媒体转载我们的原创作品[转载请注明出处]
copyright © 2005-2008 www.QQGB.com online services. all rights reserved. 蜀ICP备05015578
Template designed by Virus. Optimized for 1024x768 to Firefox,Opera and MS-IE6. Site powered by EQL.
红盾
热爱电脑,热爱生活
拥有电脑,拥有生命
让我们享受拥有电脑的时光