Συμπτώματα
Ας υποθέσουμε ότι χρησιμοποιείτε την αναπαραγωγή συγχώνευσης ότι ο εκδότης εκτελείται σε Microsoft SQL Server 2012 ή SQL Server 2012 Service Pack 1 (SP1). Μετά την αναβάθμιση του εκδότη στον SQL Server 2012 Service Pack 2 (SP2), δεν μπορείτε να επανεκκινήσετε τον παράγοντα συγχώνευσης. Επιπλέον, λαμβάνετε το ακόλουθο μήνυμα σφάλματος:
Η διαδικασία συγχώνευσης δεν ήταν δυνατό να πραγματοποιήσει εκκαθάριση μετα-δεδομένων βάσει διατήρησης στη βάση δεδομένων ' MergePub '. Εάν συνεχιστεί αυτή η αποτυχία, δοκιμάστε να αυξήσετε το χρονικό όριο του ερωτήματος για αυτήν τη διαδικασία ή δοκιμάστε να μειώσετε την περίοδο διατήρησης. Κατά την αντιμετώπιση προβλημάτων, επανεκκινήστε το συγχρονισμό με τη λεπτομερή καταγραφή ιστορικού και καθορίστε ένα αρχείο εξόδου στο οποίο θα γράψετε.
Όταν εκτελείτε την sp_mergemetadataretentioncleanup αποθηκευμένη διαδικασία με μη αυτόματο τρόπο στον εκδότη, η αποθηκευμένη διαδικασία αποτυγχάνει και λαμβάνετε το ακόλουθο μήνυμα σφάλματος:
MSG 206, επίπεδο 16, κατάσταση 2, διαδικασία sp_mergemetadataretentioncleanup, διαφωνία τύπου 63Operand τύπου: το bigint δεν είναι συμβατό με το uniqueidentifierMsg 206, επίπεδο 16, κατάσταση 2, διαδικασία sp_mergemetadataretentioncleanup, διαφωνία τύπου 65Operand line: το Int δεν είναι συμβατό με το uniqueidentifier
Επίλυση
Το πρόβλημα διορθώθηκε για πρώτη φορά με την ακόλουθη αθροιστική ενημέρωση του SQL Server.
Αθροιστική ενημερωμένη έκδοση 3 για τον SQL Server 2012 SP2 /en-us/help/3002049
Κάθε νέα αθροιστική ενημέρωση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις επιδιορθώσεις ασφαλείας που συμπεριλήφθηκαν στην προηγούμενη αθροιστική ενημέρωση. Ανάληψη ελέγχου των πιο πρόσφατων αθροιστικών ενημερώσεων για τον SQL Server:
Λύση
Για να επιλύσετε αυτό το ζήτημα, εκτελέστε το ακόλουθο ερώτημα στη δημοσιευμένη βάση δεδομένων:if exists (select * from sys.columns sc inner join sys.types st on sc.system_type_id = st.system_type_id where object_id = object_id('dbo.sysmergesubscriptions') and sc.name = 'last_local_recgen' and st.name = 'uniqueidentifier') begin alter table dbo.sysmergesubscriptions drop column last_local_recgen alter table dbo.sysmergesubscriptions add last_local_recgen bigint null end
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα πρόβλημα στα προϊόντα της Microsoft που παρατίθενται στην ενότητα "ισχύει για".