0

在 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 中都返回相同的结果。

4

1 回答 1

0

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

于 2019-07-25T16:54:31.153 回答