Συμπτώματα
Όταν το σχέδιο 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 για να περιγράφει τις ενημερώσεις λογισμικού.