KB5022920 - REMEDIERE: Funcție cu valoare de tabel care utilizează un parametru și clauza OPTION (OPTIMIZARE FOR) care dă rezultate incorecte la prima rulare

Se aplică la
SQL Server 2019 on Linux SQL Server 2019 on Windows

Simptome

Atunci când planul SQL are executarea intercalată activată și utilizează clauza OPTION (OPTIMIZE FOR), funcția cu valoare tabel (TVF) care utilizează un parametru transmis în aceeași instrucțiune SQL dă rezultate incorecte la prima rulare.

Rezolvare

Această problemă este remediată în următoarea actualizare cumulativă pentru SQL Server:

Actualizarea cumulativă 19 pentru SQL Server 2019

Notă Iată un exemplu de a nu utiliza execuția intercalată după ce instalați această actualizare cumulativă:

DECLARE @start smalldatetime
SELECT count(*) FROM dbo.GetData(@start)
OPTION (OPTIMIZE FOR (@start = '2022-05-23T06:00:00'))

CREATE FUNCTION [dbo].[GetData]
(
  @start datetime
)
RETURNS TABLE AS RETURN
SELECT t.id FROM dbo.TestTable t
WHERE t.testdate >= @start
GO

CREATE TABLE [dbo].[TestTable](
       [id] [int] IDENTITY(1,1) NOT NULL,
       [testdate] [datetime] NULL
) ON [PRIMARY]
GO

Despre actualizările cumulative pentru SQL Server

Fiecare actualizare cumulativă nouă pentru SQL Server conține toate remedierile rapide și remedierile de securitate din compilarea anterioară. Vă recomandăm să instalați cea mai recentă compilare pentru versiunea dvs. de SQL Server:

Cea mai recentă actualizare cumulativă pentru SQL Server 2019

Stare

Microsoft a confirmat că aceasta este o problemă în produsele Microsoft care sunt listate în secțiunea „Se aplică la”.

Referințe

Aflați despre terminologia pe care o utilizează Microsoft pentru a descrie actualizările de software.