首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

|zyciis| 一个表的排序的有关问题 怎么来做从小到大的不重复排序

2012-02-22 
|zyciis| 一个表的排序的问题 如何来做从小到大的不重复排序如有表tabIDName OrderID1AA02BB23CC1--------

|zyciis| 一个表的排序的问题 如何来做从小到大的不重复排序
如有表
tab
ID Name OrderID
1 AA 0
2 BB 2
3 CC 1
---------------------------
我现在比如插入一条数据
DD 1 那么结果就为
tab
ID Name OrderID
1 AA 0
2 BB 3
3 CC 2
4 DD 1
--------------------
也就是说当插入某个数据的时候,如果原来数据已经存在这个值
那么那个值就会+1 ,依次都全有数据

那上面的这个要求用什么办法来做最好呢

我现在是用.NET程序写,
但比如数据库有10000条记录,每修改一个都要修改这个记录,没有效率

大家会怎么做呢\

谢谢

[解决办法]
我理解能力差
[解决办法]
没看懂你的意思,你说的+1是什么东西+1,ID列自增吗
[解决办法]

探讨

晕 看来我表达不好
也就是说要添加一个表,来实现记录的由小到大的排序号
而这个排序号要求是唯一的

这个功能要怎么来实现最好
谢谢

[解决办法]
需要使用存储过程做比较好些

create proc MyInsert(@ID int, @Name varchar(20), @OrderID int)
as
begin

begin tran

-- 1 先更新大于这个OrderID值得记录
update 表 
set OrderID = OrderID+1
where OrderID > @OrderID 

-- 2 插入该纪录
insert 表(ID, Name,OrderID)
values(@ID,@Name,@OrderID )

commint 
end
[解决办法]
如果你的OrderID列不是从外部指定,而要在数据库自增,总是让它等于id不就行了
[解决办法]
自己先建一个表。
如:
SQL code
CREATE TABLE [ConRecLed1] (    [ID] [int] IDENTITY (1, 1) NOT NULL ,    ......下面你需要的字段跟你原先的表一个)GO
[解决办法]
执行两段sql,就和楼上写的,现更新,在插入,你是不是要的这个。
sql加个参数
[解决办法]
感觉你完全没必要那么插入数据
你只要通过MAX函数查询出该列的最大值再在基础上+1就可以了

 如果是升序排列的话 可以用 select * from 表名 order by 列名 asc(降序改为 desc)
[解决办法]
探讨
如果你的OrderID列不是从外部指定,而要在数据库自增,总是让它等于id不就行了

热点排行