pel*_*lod 7 t-sql sql-server rowcount user-defined-functions sql-server-2019
这是我的示例代码
drop function rowcount_test
go
CREATE FUNCTION dbo.rowcount_test () RETURNS INT AS
BEGIN
DECLARE @v INT
SELECT @v = 1
return @@ROWCOUNT
END
GO
grant exec on dbo.rowcount_test to public
go
SELECT dbo.rowcount_test()
Run Code Online (Sandbox Code Playgroud)
由 mssql 2017(及更早版本)执行时,它给出 1
由 mssql 2019 执行时它给出 0
它在 mssql 2019(标准版)执行时给出 1,并将 db 置于 2017 兼容模式
以前从来没出过问题……是MSSQL 2019中的某种影响代码的设置还是某种bug?
标量 udf 再次内联,相当有问题
SELECT dbo.rowcount_test()
OPTION (USE HINT('DISABLE_TSQL_SCALAR_UDF_INLINING'));
Run Code Online (Sandbox Code Playgroud)