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

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

Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη: 3135750
Συμπτώματα
Σε έναν απομακρυσμένο διακομιστή που εκτελεί τον Microsoft SQL Server 2012 ή 2014 διακομιστή SQL, μπορείτε να έχετε μια αποθηκευμένη διαδικασία που έχει ένα όρισμα εξόδου που μοιάζει με το ακόλουθο:

create procedure procExample @retVal varchar(10) outputas set @retVal = 'Goodbye';
Συνήθως, η σύνταξη για την κλήση απομακρυσμένης διαδικασίας μοιάζει με το ακόλουθο:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample ? OUTPUT', @outputResult OUTPUT) at [MyRemoteServer];print @outputResult;
Εάν παραλείψετε το "; ΕΞΌΔΟΥ"τμήμα της σύνταξης κλήση, τον τοπικό διακομιστή που εκτελεί τον SQL Server μπορεί να διακοπεί. Ο απομακρυσμένος διακομιστής εξακολουθούν να λειτουργούν, επειδή η εκτέλεση ποτέ φτάσει το λόγω αυτό παράλειψη σύνταξη. Για παράδειγμα, η σύνταξη μοιάζει με το ακόλουθο:

-- Declare a variable to hold a result, and have it initialized with a non-NULL valuedeclare @outputResult varchar(10) = 'Hello';execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Μια μεταβλητή που δεν έχει προετοιμαστεί, δεν προκαλεί τον τοπικό διακομιστή για την αιφνίδια διακοπή λειτουργίας. Ωστόσο, αυτό δημιουργεί ένα μήνυμα λάθους που αναφέρει ότι δεν είναι όλα τα ορίσματα έχουν καθοριστεί για την κλήση (όπως θα έπρεπε να). Για παράδειγμα, έχει την ακόλουθη σύνταξη:

-- Declare a variable to hold a result, and initialize it with NULL, or leave uninitializeddeclare @outputResult varchar(10) = NULL;execute ('MyDb.dbo.procExample', @outputResult OUTPUT) at [MyRemoteServer];
Σε αυτήν την περίπτωση, λαμβάνετε ένα μήνυμα λάθους παρόμοιο με το ακόλουθο:

Msg 201, επίπεδο 16, κατάσταση 4, τη διαδικασία procExample, γραμμή 10

Η παράμετρος '@retVal', που δόθηκε δεν αναμένει η διαδικασία ή συνάρτηση 'procExample'.
Προτεινόμενη αντιμετώπιση

Πληροφορίες ενημέρωσης

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

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

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

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

Ιδιότητες

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

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 KB3135750 KbMtel
Σχόλια