日期:2014-05-17  浏览次数:20359 次

给字段插入编号
表格的格式如下:
id  name   ischeck
1   jack     1
2   tony     2
3   amanda   3
4   xiao     4
5   ming     5

问题1 :我如何先根据ID的顺序,给ischeck的列插入编号呢?语句怎么写,注意:我的id不一定是1、2、3   可能一开始就是4、5、6 但是我的ischeck必须是从1开始

插入如上表的编号以后,因为我表格的排序要用ischeck来排序,当我要在id为2、3 中间插入一个值 ,其实就是给ischeck 重新编号我该怎么弄,效果如下表显示

id  name   ischeck
1   jack     1
2   tony     2
3   amanda   4
4   xiao     5
5   ming     6
6   tao      3

这样的更新语句怎么写?求各位帮忙!答者给分!谢谢! 

------解决方案--------------------
05以上的用rownumber()over(order by id)
------解决方案--------------------
2005及以上版本可以这样生成
----------------------------------------------------------------
-- Author  :DBA_Huangzj(發糞塗牆)
-- Date    :2013-12-24 14:24:18
-- Version:
--      Microsoft SQL Server 2012 (SP1) - 11.0.3128.0 (X64) 
-- Dec 28 2012 20:23:12 
-- Copyright (c) Microsoft Corporation
-- Enterprise Edition (64-bit) on Windows NT 6.2 <X64> (Build 9200: )
--
----------------------------------------------------------------
--> 测试数据:[huang]
if object_id('[huang]') is not null drop table [huang]
go 
create table [huang]([id] int,[name] varchar(6),[ischeck] int)
insert [huang]
select 1,'jack',null union all
select 2,'tony',null union all
select 3,'amanda',null union all
select 4,'xiao',null union all
select 5,'ming',null
--------------开始查询--------------------------

select ID,NAME,ROW_NUMBER()OVER(ORDER BY id)[ischeck]
 from [huang]
----------------结果----------------------------
/* 
ID          NAME   ischeck
----------- ------ --------------------
1           jack   1
2           tony   2
3           amanda 3
4  &