求教SQL查询一定数量符合条件的记录要怎么处理。泪奔中。

求教SQL查询一定数量符合条件的记录要怎么办。。泪奔中。。
本人菜鸟一枚,用ASP+SQL2000做了个数据库的应用,在XP上调试。
是这样的:
我需要进行一项操作,就是从web_clist表中查询10000条cHasContent (nvarchar)字段是NULL的记录,然后通过循环cid将一些完全不同的数据UPDATE进web_clist中
我是这样做查询的:

set rs=server.CreateObject("adodb.recordset")
sql="select top 10000  *  from web_clist where cHasContent is null order by cid"
rs.open sql,conn,1,1


运行以后,页面提示以下错误:
HTTP 错误 500.100 - 内部服务器错误 - ASP 错误
错误类型:
Microsoft OLE DB Provider for ODBC Drivers (0x80040E21)
ODBC 驱动程序不支持所需的属性。

然后我试着将SQL中的10000改成500
页面在数十秒后显示了出来,rs.recordcount=500,并没有错误,但是电脑的内存直接飙升至90%,不再下降

百度了一下,用TOP再加WHERE限制的话,会全表扫描
于是试了下将SQL改成:select top 100000 * from web_clist
果然是这样的,10万条数据两秒左右就查询出结果,内存也基本没改变,但问题是没了WHERE,我还怎么判断cHasContent (nvarchar)字段是NULL呢

百度了很久,也不知道如何进行查询。

就是要从表web_clist中(有近800万条记录,MDF大概2G多一点)查询固定数量(如10000条)符合cHasContent (nvarchar)字段是NULL的记录,排不排序无所谓,运行时间稍微长一些也没事,还请高手帮帮忙,头晕了一下午。。


------解决思路----------------------
如果不是要求全表显示,最好不用*,这个会走全表扫面,耗时,需要枚举的字段写出来就好了
------解决思路----------------------
这个表列数应该很多吧

除了不要用*外,我想既然可以不用排序,也可以先把ORDER BY去掉试试