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

不要再数据库中设置自增,谢谢... 不要再数据库中设置自增,谢谢 展开
 我来答
wangzhiqing999
2011-03-19 · TA获得超过1.6万个赞
知道大有可为答主
回答量:7048
采纳率:100%
帮助的人:3319万
展开全部
还是先建测试表:

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 行受影响)
mendorend
2011-03-19 · 超过18用户采纳过TA的回答
知道答主
回答量:197
采纳率:40%
帮助的人:32万
展开全部
在已建好的表更新么,如果是就定义变量
declare @var int
set @var=600
while @var<600+N
begin
update 表 set 列=@var where
set @var=@var+1
end
或把n条记录取出到临时表更新再插入回
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
i178269245
2011-03-19 · TA获得超过185个赞
知道小有建树答主
回答量:180
采纳率:0%
帮助的人:115万
展开全部
update tabName set columnName = columnName +1 where 条件(N条记录);
字段类型为数值型。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友01d3722
2011-03-19
知道答主
回答量:26
采纳率:0%
帮助的人:14.5万
展开全部
该字段应该是int型吧,在数据库表中设置成自增,插入语句不更新该字段,默认自动增长,假如不是从0开始,起始记录需要更改其值
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式