KB5022920 - ΕΠΙΔΙΌΡΘΩΣΗ: Συνάρτηση πίνακα τιμών που χρησιμοποιεί μια παράμετρο και τον όρο OPTION (OPTIMIZE FOR) δίνει εσφαλμένα αποτελέσματα στην πρώτη εκτέλεση

Ισχύει για
SQL Server 2019 on Linux SQL Server 2019 on Windows

Συμπτώματα

Όταν το σχέδιο SQL έχει ενεργοποιήσει την εκτέλεση interleaved και χρησιμοποιεί τον όρο OPTION (OPTIMIZE FOR), η συνάρτηση table-valued (TVF) που χρησιμοποιεί μια παράμετρο που μεταβιβάζεται στην ίδια πρόταση SQL δίνει εσφαλμένα αποτελέσματα κατά την πρώτη εκτέλεση.

Επίλυση

Αυτό το πρόβλημα διορθώνεται στην ακόλουθη αθροιστική ενημερωμένη έκδοση για SQL Server:

Αθροιστική ενημέρωση 19 για το SQL Server 2019

Σημείωση Ακολουθεί ένα παράδειγμα μη χρήσης της ενδιάμεσης εκτέλεσης μετά την εγκατάσταση αυτής της αθροιστικής ενημερωμένης έκδοσης:

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

Πληροφορίες σχετικά με τις αθροιστικές ενημερώσεις για SQL Server

Κάθε νέα αθροιστική ενημερωμένη έκδοση για SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και ενημερώσεις κώδικα ασφαλείας που υπήρχαν στην προηγούμενη δομή. Συνιστούμε να εγκαταστήσετε την πιο πρόσφατη έκδοση για την έκδοση του SQL Server που διαθέτετε:

Πιο πρόσφατη αθροιστική ενημέρωση για το SQL Server 2019

Κατάσταση

Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα που αφορά τα προϊόντα της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".

Παραπομπές

Ενημερωθείτε για την ορολογία που χρησιμοποιεί η Microsoft για να περιγράφει τις ενημερώσεις λογισμικού.