sqlserver 怎样把数据库同一个表中的两条记录互换位置?

 我来答
J_LD_P
2012-02-17 · TA获得超过109个赞
知道答主
回答量:103
采纳率:100%
帮助的人:42.9万
展开全部
数据表中的数据存放顺序和表的聚集索引有关,表的初始显示顺序是按聚集索引的顺序来的。
明白这一点你就可以实现。把表的聚集索引列的值修改成你想要的顺序就可以了。
我觉得你要的决定显示顺序的排序号。比如:
select * from A order by OrderID
上移下移功能就是互换两条记录的OrdeID,一般都是这么实现的。
桓笑容3F
2012-02-17 · TA获得超过297个赞
知道小有建树答主
回答量:320
采纳率:0%
帮助的人:368万
展开全部
首先你的id是不是自增长的那一种
如果是的话,需要先把自增长关闭掉,否则id不可调
关掉后,你把id互换,更新下
更新后把id自增长再开起来
追问
我要的是sql语句。。。。手动操作的我也会。。现在关键是我在写网站要用到这个 实现上移下移功能啊。。。
追答
那你就在你的表里面再加一个栏位。
你不能因为页面要调整顺序而调整原资料的完整性
你应该加一个seq序号栏位,让用户可以调整该列资料,查询按该seq排序。
除非你想让你的资料库崩溃,而替换他们的id

我还以为你就这两条临时调一下呢
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
zcm475800568
推荐于2017-11-25 · TA获得超过114个赞
知道小有建树答主
回答量:147
采纳率:0%
帮助的人:84.4万
展开全部
我有个想法不知道你能不能认同
既然自增长Id不好操作 那么我设立一个可变动的序列id 这样操作就很简单了 上移一行就是把上一行的序列id+1 本行的id-1 不去牵扯自增长id 只是变一下我序列id 排序的时候根据这个序列id排序 大家看这个方法怎么样 我知道是个笨办法 但是很可行
追问
这个方法我知道大概  但是我不知道怎么写这样的代码。。。。我是菜鸟。。。。想实现把asp的GridView的数据 可以手动上移下移。我想着在数据库中加一个字段,就是你说的这样,可是我不知道怎么去实现。。。
追答
加一个字段 xlId 序列id
操作的时候
下移
update table set xlId = xlId - 1 where id = xxx
update table set xlId = xlId + 1 where id = xxx + 1
上移
update table set xlId = xlId + 1 where id = xxx
update table set xlId = xlId - 1 where id = xxx - 1

像这样的一个操作有两个更新语句的话要用存储过程 同时成功 同时失败
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
慧儿879
2012-02-17
知道答主
回答量:29
采纳率:0%
帮助的人:6.9万
展开全部
可以排序啊
追问
不是啊。就类似于我想把原来在第三个位置的数据 移到第1行去 这样的交换
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
jelvis
2012-02-17 · TA获得超过5631个赞
知道大有可为答主
回答量:2480
采纳率:62%
帮助的人:833万
展开全部
排序
更多追问追答
追问
不是啊。就类似于我想把原来在第三个位置的数据 移到第1行去 这样的交换
追答
不能
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 3条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式