SQL Server ROWCOUNT 设函数会在返回指定数量的记录后停止查询处理。ROWCOUNT 的基本语法如下所示。
SET ROWCOUNT { number (or number variable) }
-- For example,
SET ROWCOUNT 4;
我们将使用下面显示的数据进行演示。

SQL Server ROWCOUNT 有什么用?
在此示例中,我们将展示 SET ROWCOUNT 如何影响查询。在进行主要的 SQL Server 示例之前,我将使用 COUNT 函数来查找我们的 employee 表包含多少行。
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [Employee];
SELECT COUNT(*) AS [Number of Records] FROM [Employee]

从上图可以看出,该表包含 14 条记录。现在,让我们使用此 set 函数将记录限制为 7 条。
SET ROWCOUNT 7;
GO
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [Employee];
查询返回了七条记录。这是因为当查询处理达到第 7 条记录时,它将停止处理其他记录。

注意:尽管此 ROWCOUNT 不会影响 DELETE、UPDATE 和 INSERT 语句,但最好避免使用此语句。而是可以使用 TOP 子句。
SQL SET ROWCOUNT OFF 示例
使用 SET ROWCOUNT 0;来停止设置此功能或将其关闭。
SET ROWCOUNT 0;
GO
SELECT [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [Employee];

使用 ROWCOUNT ON TOP 子句示例
如果您同时使用 TOP 子句和 ROWCOUNT,则此函数将覆盖 TOP 子句。
SET ROWCOUNT 5;
GO
SELECT TOP 6 [FirstName]
,[LastName]
,[Education]
,[Occupation]
,[YearlyIncome]
,[Sales]
,[HireDate]
FROM [Employee];
从下面的屏幕截图中可以看到,我们将其设置为 5,然后选择了 TOP 6。这里,它返回了前 5 条记录,因为一旦达到 5 条,查询执行就会停止。
