Συμπτώματα
Όταν το πρόγραμμα SQL έχει ενεργοποιημένη την εκτέλεση με παρεμβολή και χρησιμοποιεί τον όρο OPTION (OPTIMIZE FOR), η συνάρτηση με τιμή πίνακα (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 σας:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για πρόβλημα στα προϊόντα της Microsoft που αναφέρονται στην ενότητα "Ισχύει για".
Αναφορές
Ενημερωθείτε σχετικά με την ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή ενημερώσεων λογισμικού.