sql 更新一个表中的N条记录,让这N条记录的同一字段从一个值(比如600)开始自增1,十分急。

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了sql 更新一个表中的N条记录,让这N条记录的同一字段从一个值(比如600)开始自增1,十分急。相关的知识,希望对你有一定的参考价值。

不要再数据库中设置自增,谢谢

还是先建测试表:

CREATE TABLE test_niu (
id INT,
val VARCHAR(10)
);
go

测试数据:

INSERT INTO test_niu (val)
SELECT 'A'
UNION ALL SELECT 'B'
UNION ALL SELECT 'C'
UNION ALL SELECT 'D'
UNION ALL SELECT 'E'
UNION ALL SELECT 'F'
UNION ALL SELECT 'G'
UNION ALL SELECT 'H'
UNION ALL SELECT 'I'
UNION ALL SELECT 'J'
UNION ALL SELECT 'K'
UNION ALL SELECT 'L';
go

创建个临时的 VIEW

CREATE VIEW temp_view AS
SELECT
ROW_NUMBER() OVER(ORDER BY (SELECT 1)) AS no,
id,
val
FROM
test_niu;
go

更新那个 id 从 600 开始自增。

UPDATE
temp_view
SET
id = no + 600;

查看结果:

1> select * from test_niu;
2> go
id val
----------- ----------
601 A
602 B
603 C
604 D
605 E
606 F
607 G
608 H
609 I
610 J
611 K
612 L

(12 行受影响)
参考技术A 在已建好的表更新么,如果是就定义变量
declare @var int
set @var=600
while @var<600+N
begin
update 表 set 列=@var where
set @var=@var+1
end
或把n条记录取出到临时表更新再插入回
参考技术B update tabName set columnName = columnName +1 where 条件(N条记录);
字段类型为数值型。
参考技术C 该字段应该是int型吧,在数据库表中设置成自增,插入语句不更新该字段,默认自动增长,假如不是从0开始,起始记录需要更改其值

以上是关于sql 更新一个表中的N条记录,让这N条记录的同一字段从一个值(比如600)开始自增1,十分急。的主要内容,如果未能解决你的问题,请参考以下文章

如何从mysql中的表中选择N条记录

Netezza SQL 比较同一表中的两条记录

如何删除 SQL Server 2008 R2 数据库中的最后 N 条记录? [复制]

SQL查询从链接表中检索最后一条记录[重复]

用一条SQL语句取出第 m 条到第 n 条记录的方法

SQL Server数据库用sql语句实现分页查询 (从M条数据开始,查找N条记录。sqlserver数据库。请举例说明。)