请问:如何在编程中用select时至返回特定的行数,不用select TOP * from table1

watermelon2 2003-04-06 03:13:49
请问:如何在编程中用select时至返回特定的行数,不用select TOP * from table1,
因为top返回的是开始的行数,谢
...全文
43 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
pengdali 2003-04-06
  • 打赏
  • 举报
回复
分页:

select IDENTITY(int, 1,1) AS ID_Num,* into #temp from 表
select * from #temp where ID_Num between 10 and 20
pengdali 2003-04-06
  • 打赏
  • 举报
回复
SET ROWCOUNT
使 Microsoft® SQL Server™ 在返回指定的行数之后停止处理查询。

语法
SET ROWCOUNT { number | @number_var }

参数
number | @number_var

是在停止给定查询之前要处理的行数(整数)。

注释
建议将当前使用 SET ROWCOUNT 的 DELETE、INSERT 和 UPDATE 语句重新编写为使用 TOP 语法。有关更多信息,请参见 DELETE、INSERT 或 UPDATE。

对于在远程表和本地及远程分区视图上执行的 INSERT、UPDATE 和 DELETE 语句,忽略 SET ROWCOUNT 选项设置。

若要关闭该选项(以便返回所有的行),请将 SET ROWCOUNT 指定为 0。



说明 设置 SET ROWCOUNT 选项将使大多数 Transact-SQL 语句在已受指定数目的行影响后停止处理。这包括触发器和 INSERT、UPDATE 及 DELETE 等数据修改语句。ROWCOUNT 选项对动态游标无效,但限制键集的行集和不感知游标。使用该选项时应谨慎,它主要与 SELECT 语句一起使用。


如果行数的值较小,则 SET ROWCOUNT 替代 SELECT 语句 TOP 关键字。

SET ROWCOUNT 的设置是在执行或运行时设置,而不是在分析时设置。

权限
SET ROWCOUNT 权限默认授予所有用户。

示例
SET ROWCOUNT 在指定的行数后停止处理。在下例中,注意有 x 行满足预付款少于或等于 $5,000 的条件;但是,从更新所返回的行数中可以看出并非所有的行都得到处理。ROWCOUNT 影响所有的 Transact-SQL 语句。

USE pubs
GO
SELECT count(*) AS Cnt
FROM titles
WHERE advance >= 5000
GO

下面是结果集:

Cnt
-----------
11

(1 row(s) affected)

现在,将 ROWCOUNT 设置为 4,并更新预付款等于或大于 $5,000 的所有行。

-- SET ROWCOUNT to 4.
SET ROWCOUNT 4
GO
UPDATE titles
SET advance = 5000
WHERE advance >= 5000
GO

watermelon2 2003-04-06
  • 打赏
  • 举报
回复
我忘了说,是在sql 2000下

22,301

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server 疑难问题
社区管理员
  • 疑难问题社区
  • 尘觉
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧