Simptomi
Kada je SQL plan omogućio ispreplijeđeno izvršavanje i koristi uvjet OPTION (OPTIMIZE FOR), funkcija s vrijednostima tablice (TVF) koja koristi parametar proslijeđen u istoj SQL naredbi daje netočne rezultate prilikom prvog pokretanja.
Rješenje
Taj je problem riješen u sljedećem kumulativnom ažuriranju za SQL Server:
Kumulativno ažuriranje 19 za SQL Server 2019.
Napomena Evo primjera neusmjećenog izvršavanja nakon instalacije ovog kumulativnog ažuriranja:
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
Svako novo kumulativno ažuriranje za SQL Server sadrži sve hitne popravke i sigurnosne popravke koji su se nalazili u prethodnoj međuverziji. Preporučujemo da instalirate najnoviju međuverziju za svoju verziju SQL Server:
Status
Microsoft je potvrdio da je to problem u Microsoftovim proizvodima koji su navedeni u odjeljku "Odnosi se na".
Reference
Informirajte se o terminologiji koju Microsoft koristi za opisivanje softverskih ažuriranja.