Príznaky
Keď má plán SQL povolené prekladané spustenie a používa klauzulu OPTION (OPTIMIZE FOR), funkcia TVF (table-valued function), ktorá používa parameter odovzdaný v rovnakom príkaze SQL, poskytuje nesprávne výsledky pri prvom spustení.
Riešenie
Tento problém je opravený v nasledujúcej kumulatívnej aktualizácii pre SQL Server:
Kumulatívna aktualizácia 19 pre SQL Server 2019
Poznámka: Tu je príklad nepoužívania preloženého spustenia po inštalácii tejto kumulatívnej aktualizácie:
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
Každá nová kumulatívna aktualizácia pre SQL Server obsahuje všetky rýchle opravy a opravy zabezpečenia, ktoré boli v predchádzajúcej zostave. Odporúčame nainštalovať najnovšiu zostavu pre svoju verziu SQL Server:
Stav
Spoločnosť Microsoft potvrdzuje, že ide o problém v produktoch spoločnosti Microsoft, ktoré sú uvedené v tomto článku v časti Informácie v tomto článku sa týkajú nasledujúcich produktov.
Odkazy
Získajte informácie o terminológii, ktorú spoločnosť Microsoft používa na popis aktualizácií softvéru.