Πώς μπορείτε να καθορίσετε παραμέτρους εξόδου, όταν χρησιμοποιείτε το sp_executesql αποθηκευμένης διαδικασίας του SQL Server

Μεταφράσεις άρθρων Μεταφράσεις άρθρων
Αναγν. άρθρου: 262499 - Δείτε τα προϊόντα στα οποία αναφέρεται το συγκεκριμένο άρθρο.
Ανάπτυξη όλων | Σύμπτυξη όλων

Περίληψη

Για ναsp_executesqlσύστημα αποθηκευμένη διαδικασία χρησιμοποιείται για την εκτέλεση μια δήλωση T SQL, η οποία μπορεί να χρησιμοποιηθεί ξανά πολλές φορές ή να εκτελέσει μια πρόταση T SQL ενσωματωμένη δυναμικά. Δέχεται παραμέτρους ως δεδομένα εισόδου για να επεξεργαστεί τις προτάσεις T SQL ή δέσμες. Επίσης, επιτρέπει παραμέτρους εξόδου για να καθοριστεί έτσι ώστε να μπορούν να αποθηκευτούν οποιεσδήποτε εξόδου που δημιουργούνται από τις προτάσεις T SQL (παρόλο που αυτό δεν έχει τεκμηριωθεί στα ηλεκτρονικά εγχειρίδια του SQL Server).

Δύο σενάρια στα οποία θα είναι χρήσιμη με τις παραμέτρους εξόδουsp_executesqlare:
  • Εάν,sp_executesqlδημιουργεί μια έξοδο που θα είναι χρήσιμο, αποθηκεύοντας αυτό το αποτέλεσμα μια παράμετρο εξόδου επιτρέπει την κλήση δέσμης για να χρησιμοποιήσετε την παράμετρο για μεταγενέστερη ερωτήματα.
  • Εάν,sp_executesqlεκτελεί μια αποθηκευμένη διαδικασία που ορίζεται με τις παραμέτρους εξόδου, οι παράμετροι εξόδου γιαsp_executesqlμπορεί να χρησιμοποιηθεί για να διατηρήσει τις εξόδους που δημιουργείται από την αποθηκευμένη διαδικασία.

Περισσότερες πληροφορίες

Τα ακόλουθα δύο παραδείγματα παρουσιάζουν τη χρήση των παραμέτρων εξόδου μεsp_executesql.

Παράδειγμα 1
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @IntVariable INT
DECLARE @Lastlname varchar(30)
SET @SQLString = N'SELECT @LastlnameOUT = max(lname)
                   FROM pubs.dbo.employee WHERE job_lvl = @level'
SET @ParmDefinition = N'@level tinyint,
                        @LastlnameOUT varchar(30) OUTPUT'
SET @IntVariable = 35
EXECUTE sp_executesql
@SQLString,
@ParmDefinition,
@level = @IntVariable,
@LastlnameOUT=@Lastlname OUTPUT
SELECT @Lastlname
				
Παράδειγμα 2
CREATE PROCEDURE Myproc
    @parm varchar(10),
    @parm1OUT varchar(30) OUTPUT,
    @parm2OUT varchar(30) OUTPUT
    AS
      SELECT @parm1OUT='parm 1' + @parm
     SELECT @parm2OUT='parm 2' + @parm
GO
DECLARE @SQLString NVARCHAR(500)
DECLARE @ParmDefinition NVARCHAR(500)
DECLARE @parmIN VARCHAR(10)
DECLARE @parmRET1 VARCHAR(30)
DECLARE @parmRET2 VARCHAR(30)
SET @parmIN=' returned'
SET @SQLString=N'EXEC Myproc @parm,
                             @parm1OUT OUTPUT, @parm2OUT OUTPUT'
SET @ParmDefinition=N'@parm varchar(10),
                      @parm1OUT varchar(30) OUTPUT,
                      @parm2OUT varchar(30) OUTPUT'

EXECUTE sp_executesql
    @SQLString,
    @ParmDefinition,
    @parm=@parmIN,
    @parm1OUT=@parmRET1 OUTPUT,@parm2OUT=@parmRET2 OUTPUT

SELECT @parmRET1 AS "parameter 1", @parmRET2 AS "parameter 2"
go
drop procedure Myproc
				
Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα "sp_executesql (T-SQL)" και "Χρήση sp_executesql" στα ηλεκτρονικά βιβλία SQL Server Books Online. Για περισσότερες πληροφορίες, ανατρέξτε στην ενότητα "Χρήση sp_executesql" στα ηλεκτρονικά εγχειρίδια του SQL Server και "sp_executesql (T-SQL) στον SQL Server 7.0 ηλεκτρονικά βιβλία" ή "sp_executesql" στον SQL Server 2000 Books Online.

Ιδιότητες

Αναγν. άρθρου: 262499 - Τελευταία αναθεώρηση: Κυριακή, 19 Δεκεμβρίου 2010 - Αναθεώρηση: 2.0
Οι πληροφορίες σε αυτό το άρθρο ισχύουν για:
  • Microsoft SQL Server 7.0 Standard Edition
  • Microsoft SQL Server 2000 Standard Edition
  • Microsoft SQL Server 2005 Standard Edition
  • Microsoft SQL Server 2005 Developer Edition
  • Microsoft SQL Server 2005 Enterprise Edition
  • Microsoft SQL Server 2005 Express Edition
  • Microsoft SQL Server 2005 Workgroup Edition
Λέξεις-κλειδιά: 
kbinfo kbmt KB262499 KbMtel
Μηχανικά μεταφρασμένο
ΣΗΜΑΝΤΙΚΟ: Αυτό το άρθρο είναι προϊόν λογισμικού μηχανικής μετάφρασης της Microsoft και όχι ανθρώπινης μετάφρασης. Η Microsoft σάς προσφέρει άρθρα που είναι προϊόντα ανθρώπινης αλλά και μηχανικής μετάφρασης έτσι ώστε να έχετε πρόσβαση σε όλα τα άρθρα της Γνωσιακής Βάσης μας στη δική σας γλώσσα. Ωστόσο, ένα άρθρο που έχει προκύψει από μηχανική μετάφραση δεν είναι πάντα άριστης ποιότητας. Ενδέχεται να περιέχει λεξιλογικά, συντακτικά ή γραμματικά λάθη, όπως ακριβώς τα λάθη που θα έκανε ένας μη φυσικός ομιλητής επιχειρώντας να μιλήσει τη γλώσσα σας. Η Microsoft δεν φέρει καμία ευθύνη για τυχόν ανακρίβειες, σφάλματα ή ζημίες που προκύψουν λόγω τυχόν παρερμηνειών στη μετάφραση του περιεχομένου ή χρήσης του από τους πελάτες της. Επίσης, η Microsoft πραγματοποιεί συχνά ενημερώσεις στο λογισμικό μηχανικής μετάφρασης.
Η αγγλική έκδοση αυτού του άρθρου είναι η ακόλουθη:262499

Αποστολή σχολίων

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com