DetailPage-MSS-KB

Knowledge Base

Artikel-ID: 262499 - Geändert am: Samstag, 14. Mai 2011 - Version: 5.0

Dieser Artikel ist eine Übersetzung des folgenden englischsprachigen Artikels der Microsoft Knowledge Base:
262499  (http://support.microsoft.com/kb/262499/EN-US/ ) How to specify output parameters when you use the sp_executesql stored procedure in SQL Server
Bitte beachten Sie: Bei diesem Artikel handelt es sich um eine Übersetzung aus dem Englischen. Es ist möglich, dass nachträgliche Änderungen bzw. Ergänzungen im englischen Originalartikel in dieser Übersetzung nicht berücksichtigt sind. Die in diesem Artikel enthaltenen Informationen basieren auf der/den englischsprachigen Produktversion(en). Die Richtigkeit dieser Informationen in Zusammenhang mit anderssprachigen Produktversionen wurde im Rahmen dieser Übersetzung nicht getestet. Microsoft stellt diese Informationen ohne Gewähr für Richtigkeit bzw. Funktionalität zur Verfügung und übernimmt auch keine Gewährleistung bezüglich der Vollständigkeit oder Richtigkeit der Übersetzung.

Zusammenfassung

Die gespeicherte Systemprozedur sp_executesql dient dazu, eine T-SQL-Anweisung auszuführen, die mehrmals wiederverwendet werden kann, oder eine dynamisch erstellte T-SQL-Anweisung auszuführen. Sie verwendet Parameter als Eingaben, um die T-SQL-Anweisungen oder -Batches zu verarbeiten. Sie erlaubt außerdem, dass Ausgabeparameter festgelegt werden, damit alle von den T-SQL-Anweisungen erstellten Ausgaben gespeichert werden können (dieser Hinweis ist in der SQL Server-Onlinedokumentation nicht enthalten).

In zwei Szenarien sind die Ausgabeparameter in Zusammenhang mit sp_executesql hilfreich:
  • Wenn sp_executesql eine Ausgabe erstellt, die später nochmal nützlich sein könnte, ermöglicht das Speichern dieser Ausgabe in einem Ausgabeparameter, dass der aufrufende Batch den Parameter bei späteren Abfragen verwendet.
  • Wird mit sp_executesql eine gespeicherte Prozedur ausgeführt, die über Ausgabeparameter definiert wird, können die Ausgabeparameter für sp_executesql dazu verwendet werden, dass die Ausgaben von der gespeicherten Prozedur beibehalten werden.

Weitere Informationen

Die folgenden zwei Beispiele demonstrieren die Verwendung von Ausgabeparametern in Zusammenhang mit sp_executesql.

Beispiel 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
				
Beispiel 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
				
Weitere Informationen finden Sie in der SQL Server-Onlinedokumentation unter "sp_executesql (Transact-SQL)" und "Verwenden von sp_executesql" sowie in der SQL Server 7.0-Onlinedokumentation unter "sp_executesql (T-SQL)" bzw. in der SQL Server 2000-Onlinedokumentation unter "sp_executesql".

Die Informationen in diesem Artikel beziehen sich auf:
  • 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
Keywords: 
kbsqlssis kbinfo KB262499
Microsoft stellt Ihnen die in der Knowledge Base angebotenen Artikel und Informationen als Service-Leistung zur Verfügung. Microsoft übernimmt keinerlei Gewährleistung dafür, dass die angebotenen Artikel und Informationen auch in Ihrer Einsatzumgebung die erwünschten Ergebnisse erzielen. Die Entscheidung darüber, ob und in welcher Form Sie die angebotenen Artikel und Informationen nutzen, liegt daher allein bei Ihnen. Mit Ausnahme der gesetzlichen Haftung für Vorsatz ist jede Haftung von Microsoft im Zusammenhang mit Ihrer Nutzung dieser Artikel oder Informationen ausgeschlossen.
Freigeben
Weitere Supportoptionen
Microsoft Community-Supportforen
Kontaktieren Sie uns direkt
Zertifizierten Partner finden
Microsoft Store
Folgen Sie uns: