SQL SET NOCOUNT ON

SQL Server 的 SET NOCOUNT ON 和 OFF 是一个集合函数,用于停止将查询或存储过程影响的行数消息发送到客户端。

当您从表中选择数据、存储过程或查询时,它们会将这些记录作为结果返回。由于 Set Nocount On,它会显示“影响的行数”消息。例如,如果您向任何表中插入 10 条记录,它将返回“已影响十条记录”等消息。

您可以使用此 SET NOCOUNT ON 来停止上述消息。在实际操作中,显示这些消息是额外的负担。因此,为了获得更好的性能,请尝试将此函数与 ON 一起使用。在我们深入研究 SET NOCOUNT ON 和 OFF 示例之前,让我们先看看其背后的语法。

SQL SET NOCOUNT ON OFF 语法

SET NOCOUNT ON 和 OFF 的基本语法如下所示:

SET NOCOUNT {ON | OFF }

我们将使用下面显示的数据进行演示。

Employee Table Source 1

SQL SET NOCOUNT ON 示例

在此示例中,我们将展示 SET NOCOUNT ON 如何影响查询。在进入主要示例之前,我将编写一个简单的 SELECT 语句 来向您展示 SQL 显示的消息。

SELECT [FirstName]
      ,[LastName]
      ,[Occupation]
      ,[Education]
      ,[YearlyIncome]
      ,[Sales]
FROM [Employee]

从上面的 SQL Server 屏幕截图中,您可以看到该表包含 14 条记录。现在,让我们导航到“消息”选项卡(位于“结果”选项卡旁边)以检查信息。

SET NOCOUNT ON EXAMPLE 2

它显示的信息为“已影响 14 行”。让我们使用 SET NOCOUNT ON 语句。

SET NOCOUNT ON;  
GO  
SELECT [FirstName]
      ,[LastName]
      ,[Occupation]
      ,[Education]
      ,[YearlyIncome]
      ,[Sales]
FROM [Employee]
SET NOCOUNT ON EXAMPLE 3

它不会影响查询结果。现在,让我们转到“消息”选项卡检查信息。

Message Tab 4

您会看到,没有“已影响 14 行”之类的信息。它显示“命令已成功完成”。

SQL SET NOCOUNT OFF

使用 SET NOCOUNT OFF 关键字来显示受消息影响的行。请参阅“存储过程”和“INSERT 语句”文章。

SET NOCOUNT OFF;  
GO  
SELECT [FirstName]
      ,[LastName]
      ,[Occupation]
      ,[Education]
      ,[YearlyIncome]
      ,[Sales]
FROM [Employee]
SET NOCOUNT OFF EXAMPLE 5