Sql-Server

我應該為函式添加 set nocount 嗎?

  • February 6, 2017

除非您使用 DONE_IN_PROC,否則我一直在閱讀有關實施“set nocount on”的所有觸發器和過程的好處。

我有一個從更新觸發器呼叫的標量值函式,以計算多個表中的值的總和。

搜尋 msdn 和過去的文章,我無法找到使用 set nocounton 的函式的顯式範例。

包含或排除“set nocount on”對函式有什麼影響?函式中是否有一點或程式碼氣味應該表明添加了 set nocount on?

函式無法將數據返回給客戶端,所以我想不出SET NOCOUNT ON. 如果您確實嘗試將其添加為功能,則會出現錯誤。SQL Server 認為它會引起副作用

函式體

指定一系列 Transact-SQL 語句(它們一起不會產生修改表等副作用)定義函式的值。

例如,以下程式碼會引發錯誤:

CREATE FUNCTION X_JRO_TEST() 
RETURNS INT
AS
BEGIN
SET NOCOUNT ON;
RETURN 1;
END;

消息 443,級別 16,狀態 15,過程 X_JRO_TEST,第 5 行

在函式中無效使用副作用運算符“SET OPTION ON”。

引用自:https://dba.stackexchange.com/questions/163353