Gan*_*er7 4 sql-server t-sql functions set-returning-functions
我一直在阅读有关所有触发器和过程的好处,除非您使用 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;
Run Code Online (Sandbox Code Playgroud)
消息 443,级别 16,状态 15,过程 X_JRO_TEST,第 5 行
在函数中无效使用副作用运算符“SET OPTION ON”。