Συμπτώματα
Ας υποθέσουμε ότι έχετε έναν πίνακα που περιέχει μια στήλη τύπος δεδομένων ημερομηνίας και έχετε υλοποιήσει το ευρετήριο χώρου αποθήκευσης ομαδοποιημένων στηλών (CCSI) σε αυτόν τον πίνακα στον Microsoft SQL Server 2014. Όταν προσπαθείτε να υποβάλετε ερώτημα στον πίνακα χρησιμοποιώντας τον τύπο δεδομένων " ημερομηνία " ως προσδιοριστικό, ενδέχεται να επιστραφούν εσφαλμένα δεδομένα. Για παράδειγμα:create table tab2(c1 int, c2 date, c3 varchar(10)) CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO select *FROM tab2 S -- Table with clustered columnstore indexWHERE S.c2 = @date -- variable of Date datatype
Επίλυση
Πληροφορίες για το Service Pack
Για να επιλύσετε αυτό το ζήτημα, αποκτήστε το Service Pack 1 για τον SQL Server 2014.
Για περισσότερες πληροφορίες σχετικά με τον SQL Server 2014 Service Pack 1 (SP1), ανατρέξτε στο θέμα σφάλματα που επιδιορθώνονται στον SQL server 2014 Service Pack 1.
Πληροφορίες αθροιστικής ενημέρωσης
Αυτό το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Περισσότερες πληροφορίες
Χρησιμοποιήστε τον παρακάτω κώδικα για να αναπαραγάγετε αυτό το πρόβλημα:create table tab1(c1 int, c2 date) insert into tab1values (1 , '2000-01-01') CREATE NONCLUSTERED INDEX [idxtab1c2] ON tab1( c2 ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, SORT_IN_TEMPDB = OFF, DROP_EXISTING = OFF, ONLINE = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) create table tab2(c1 int, c2 date, c3 varchar(10)) insert into tab2values (1, '2000-01-01', 'test') CREATE CLUSTERED COLUMNSTORE INDEX [CCI_tab2] ON [tab2] WITH (DROP_EXISTING = OFF)GO create table t([runId] int not null, [scalingFactor] float not null) -- REPRO QUERY. Below batch is expected to return a row but we don’t get ittruncate table tDECLARE @date DATE, @numDates INT INSERT INTO t VALUES(1, 1)DECLARE @date DATE, @numDates INTSELECT @date = max(R.c2) , @numDates = COUNT(distinct R.c2)FROM tab1 R INNER JOIN t D ON R.c1 = D.runId select *FROM tab2 S -- CCIWHERE S.c2 = @date
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".