在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中都返回相同的内容。
答案 0 :(得分:0)
我今天早上刚刚安装并使用SQL 2019 CTP 3.2进行了测试,看来该问题已解决。 :)