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.