Symptômes
Lorsque l’exécution entrelacée est activée dans le plan SQL et utilise la clause OPTION (OPTIMIZE FOR), la fonction table (TVF) qui utilise un paramètre passé dans la même instruction SQL donne des résultats incorrects lors de la première exécution.
Résolution
Ce problème est résolu dans la mise à jour cumulative suivante pour SQL Server :
Mise à jour cumulative 19 pour SQL Server 2019
Remarque Voici un exemple de non-utilisation de l’exécution entrelacée après l’installation de cette mise à jour cumulative :
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
Chaque nouvelle mise à jour cumulative pour SQL Server contient tous les correctifs logiciels et correctifs de sécurité qui se trouvaient dans la build précédente. Nous vous recommandons d’installer la dernière build pour votre version de SQL Server :
État
Microsoft a confirmé l'existence de ce problème dans les produits Microsoft figurant dans la liste des produits concernés par cet article.
Références
En savoir plus à propos de la terminologie utilisée par Microsoft pour décrire les mises à jour logicielles.