如我有一个表是这样的:
ID 内容
A 1
B 2
D 3
E 4
F 5
G 6
其中,ID是具有主键性质的,即不能重复。
如果我想在 ID B,D 之间插入,一行 ID C,变成:
(后面的值随着 +1)
ID 内容
A 1
B 2
C 3
D 4
E 5
F 6
G 7
这句要如何写?谢谢!
------解决思路----------------------
从最后一行开始更新ID列?等到您想要的位置的时候,再插入?
------解决思路----------------------
在ID列建立聚集索引,然后更新‘内容’列为row_number
------解决思路----------------------
if OBJECT_ID('test') is not null
drop table test
go
create table test(id varchar(3),value int, constraint pk_id primary key (id))
insert into test values ('A', 1),
('B', 2),
('D', 3),
('E', 4),
('F', 5),
('G', 6)
--create clustered index clu_id on test(id)
insert into test(id) values('C')
update test set value=row from test t1 join(
select id,ROW=ROW_NUMBER()over(order by id) from test
)as t2 on t1.id=t2.id
select * from test
------解决思路----------------------
貌似不能在中间插入吧
插入记录一般都是默认在最后一行添加记录的
------解决思路----------------------
老衲不高深,但老衲还算知道点土办法:
先把需要插入的数据都插入原表中,然后全选复制到一个临时表中,然后全选复制回来,但order by ID