读书人

想做这么一个功能大家看看可行否

发布时间: 2011-12-14 23:20:17 作者: rapoo

想做这样一个功能,大家看看可行否?
因为表内需要处理的数据太多,想在表里建一个字段(假设字段名为a),用UPDATE把这个字段每几百条设成一个固定值,例如1-500条数据,字段a的值为1,501-1000条数据,字段a的值为2,1001-1500条数据,字段a值为3,以此类推。
然后处理的时候,就简单的select * from 表 where a=值,这样就能开很多窗口,一起处理同一个表里的数据了。。
不知道我这个方案可行否?

****现在关键的问题是,怎么用update把字段A按要求设定值呢?

[解决办法]
你可以再设置一个字段用于B 用于从1递增
declare @count int
declare @i int
select @count=select count from biao

while @i <@count
begin
update biao set B=@i
end
这时候就可以
update biao set A=1 where B> 1 and B <=500


如果你的数据很多
就可以 用循环控制
循环中嵌套判断语句



[解决办法]
不用存储过程。。

0 - 500
update <tablename> set a=1 where <primary key> in
(select top 500 <primary key> from <tablename> )
501 - 1000
update <tablename> set a=2 where <primary key> in
(select top 500 <primary key> from <tablename> where a is null)
1001 - 1500
update <tablename> set a=3 where <primary key> in
(select top 500 <primary key> from <tablename> where a is null)

[解决办法]
不需要这样做

你只需要定义一个字段,其值按1,2,3,4,5.......递增就行了.

选的时候

Select Top 500 * From 表名 Where A > @设定值

这里@设定值第1次为0,以后每次应为上次取出的最大值.

这样做的好处是你可以自己随意灵活控制每次取出的条数.而且也没有你在头痛的问题,呵呵
[解决办法]
楼上的得用存储过程吧。。

如果楼主的那个表中的主键从第一条记录到最后一条记录是排好序的话根本就不用添加字段,,可以直接查询的。。

读书人网 >VB Dotnet

热点推荐