具有用户定义函数的SQL Server 2019 Bug?

时间:2019-07-24 15:01:22

标签: sql-server sql-server-2019

在SQL Server 2019(Beta)中,此代码现在返回仅一个值的列表。如果兼容性设置回2017或更早版本,则将返回包含五个值的列表。如果您正在执行数学功能,也会出现相同的错误。例如,如果客户正在做类似旧学校的滚动总报告之类的事情,该报告也使用了用户定义的功能,那么他们可能会因此而受到影响。

如果确实是预期的功能,则需要对其进行记录,因为它会破坏很多现有代码。

CREATE FUNCTION [dbo].[SomeStringFunction] 
    (@value NVARCHAR(MAX)) 
RETURNS NVARCHAR(MAX)
AS 
BEGIN 
    RETURN CONVERT(NVARCHAR(MAX), ISNULL(@value, '')); 
END 
GO

DECLARE @str VARCHAR(1000)

SELECT TOP(5) @str = dbo.SomeStringFunction(@str) + ',' + name 
FROM sys.columns

SELECT @str

我希望它在所有版本的SQL Server中都返回相同的内容。

1 个答案:

答案 0 :(得分:0)

我今天早上刚刚安装并使用SQL 2019 CTP 3.2进行了测试,看来该问题已解决。 :)