ΕΠΙΔΙΌΡΘΩΣΗ: Παραβίαση πρόσβασης κατά την εκτέλεση μιας αποθηκευμένης διαδικασίας που χρησιμοποιεί ένα δρομέα σε μια μεταβλητή πίνακα στον SQL Server

ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο έχει μεταφραστεί χρησιμοποιώντας λογισμικό μηχανικής μετάφρασης της Microsoft και μπορείτε να το διορθώσετε χρησιμοποιώντας την τεχνολογία Community Translation Framework (CTF) (Πλαίσιο μετάφρασης κοινότητας). Η Microsoft παρέχει μηχανική μετάφραση, επεξεργασία μετά τη μηχανική μετάφραση από την κοινότητα και άρθρα μεταφρασμένα από επαγγελματίες προκειμένου να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής βάσης σε πολλές γλώσσες. Τα άρθρα μηχανικής μετάφρασης και αυτά που επεξεργάζονται ύστερα από μηχανική μετάφραση ενδέχεται να περιέχουν σφάλματα στο λεξιλόγιο, στη σύνταξη ή/και στη γραμματική. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες μας. Για περισσότερες πληροφορίες σχετικά με το CTF, μεταβείτε στην τοποθεσία http://support.microsoft.com/gp/machine-translation-corrections/el.

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 3138930
Συμπτώματα
Ας υποθέσουμε ότι δημιουργείτε μια αποθηκευμένη διαδικασία που χρησιμοποιεί ένα δρομέα σε μια μεταβλητή πίνακα σε Microsoft SQL Server 2012 ή 2014 διακομιστή SQL. Επιπλέον, η αποθηκευμένη διαδικασία ενημερώνει τον πίνακα χρησιμοποιώντας μια δήλωσηΌπου ΤΡΈΧΟΥΣΑ του μαζί με το δείκτη του ποντικιού.

Για παράδειγμα, η αποθηκευμένη διαδικασία μπορεί να έχει την εξής μορφή:
CREATE PROCEDURE dbo.usp_TestSP AS  BEGIN  DECLARE @TableVar TABLE (SomeInt INT NULL) INSERT @TableVar VALUES (NULL)  DECLARE @curInt INT, @newInt INT SET @newInt = 1  DECLARE ccc CURSOR LOCAL FOR SELECT SomeInt FROM @TableVar WHERE SomeInt IS NULL  OPEN ccc  FETCH NEXT FROM ccc INTO @curInt UPDATE @TableVar SET SomeInt = @newInt WHERE CURRENT OF cccCLOSE ccc  SELECT * FROM @TableVar END 

Κατά την εκτέλεση του αποθηκευμένη διαδικασία με το σύστημα sp_refreshsqlmodule αποθηκευμένη διαδικασία, ενδέχεται να παρουσιαστεί παραβίαση πρόσβασης, και ενδέχεται να λάβετε μηνύματα λάθους παρόμοια με τα ακόλουθα:
Msg 596, επίπεδο 21, 1Cannot κατάσταση συνεχιστεί η εκτέλεση επειδή η περίοδος λειτουργίας βρίσκεται σε κατάσταση τερματισμού. Msg 0, επίπεδο 20, κατάσταση 0A σοβαρό σφάλμα στην τρέχουσα εντολή. Τα αποτελέσματα, εάν υπάρχουν, θα πρέπει να απορριφθεί.

Σε αυτήν την περίπτωση, σφάλματα παρόμοια με τα ακόλουθα καταγράφονται επίσης για τα αρχεία καταγραφής σφαλμάτων του SQL Server:
ημερομηνία time.730 spid51 SqlDumpExceptionHandler: 51 διαδικασία δημιούργησε ανεπανόρθωτης εξαίρεσης c0000005 EXCEPTION_ACCESS_VIOLATION. SQL Server τερματίζεται η διαδικασία.
date time.730 spid51 * *******************************************************************************
ημερομηνία time.730 spid51 *
ημερομηνία time.730 spid51 * ΞΕΚΙΝΉΣΕΤΕ ΕΚΚΈΝΩΣΗ ΣΤΟΊΒΑΣ:
ημερομηνία time.730 spid51 * ημερομηνία ώρα spid 51
ημερομηνία time.730 spid51 *
ημερομηνία time.730 spid51 *
ημερομηνία time.730 spid51 * διεύθυνση εξαίρεσης = 00007FFC270236D5 Module(sqllang+00000000005036D5)
ημερομηνία time.730 spid51 * κωδικός εξαίρεσης = c0000005 EXCEPTION_ACCESS_VIOLATION
ημερομηνία time.730 spid51 * Παρουσιάστηκε παραβίαση πρόσβασης κατά την ανάγνωση διεύθυνση 0000006F00620074
ημερομηνία time.730 spid51 * bytes 136 Buffer εισόδου -
ημερομηνία time.730 spid51 * EXECUTE sp_refreshsqlmodule Ν ' [dbo]. [usp_TestSP]»
ημερομηνία time.730 spid51 *
ημερομηνία time.730 spid51 *

Προτεινόμενη αντιμετώπιση

Πληροφορίες αθροιστικής ενημερωμένης έκδοσης

Αυτό το ζήτημα διορθώνεται στην τις ακόλουθες ενημερωμένες εκδόσεις:
Σύσταση: Εγκαταστήστε την πιο πρόσφατη αθροιστική ενημερωμένη έκδοση για τον SQL Server

Κάθε νέα αθροιστική ενημερωμένη έκδοση για τον SQL Server περιέχει όλες τις επείγουσες επιδιορθώσεις και όλες τις ασφαλείας διορθώνει που συμπεριλήφθηκαν με την προηγούμενη αθροιστική ενημερωμένη έκδοση. Αποσύρετε τις πιο πρόσφατες αθροιστικές ενημερωμένες εκδόσεις για τον SQL Server:
Κατάσταση
Η Microsoft έχει επιβεβαιώσει ότι πρόκειται για ένα ζήτημα των προϊόντων της Microsoft που παρατίθενται στην ενότητα "Ισχύει για".
Αναφορές
Ενημερωθείτε σχετικά με το ορολογία που χρησιμοποιεί η Microsoft για την περιγραφή των ενημερώσεων λογισμικού.

Προειδοποίηση: Αυτό το άρθρο έχει μεταφραστεί αυτόματα

Ιδιότητες

Αναγνωριστικό άρθρου: 3138930 - Τελευταία αναθεώρηση: 05/31/2016 10:47:00 - Αναθεώρηση: 3.0

Microsoft SQL Server 2012 Service Pack 3, Microsoft SQL Server 2012 Service Pack 2, Microsoft SQL Server 2014 Service Pack 1, Microsoft SQL Server 2014 Developer, Microsoft SQL Server 2014 Enterprise, Microsoft SQL Server 2014 Standard

  • kbqfe kbfix kbexpertiseinter kbsurveynew kbmt KB3138930 KbMtel
Σχόλια