Freigeben über


sp_prepexec (Transact-SQL)

Gilt für: SQL Server

Bereitet eine parametrisierte Transact-SQL-Anweisung vor und führt sie aus. sp_prepexec kombiniert die Funktionen und sp_prepare sp_execute. diese Aktion wird in ID = 13 einem TDS-Paket (Tabular Data Stream) aufgerufen.

Transact-SQL-Syntaxkonventionen

Syntax

sp_prepexec handle OUTPUT , params , stmt
    [ , bound param ] [ , ...n ]
[ ; ]

Argumente

Handle

Der vom SQL Server generierte Handlebezeichner . handle ist ein erforderlicher Parameter mit einem int -Rückgabewert.

params

Identifiziert parametrisierte Anweisungen. Die params -Definition der Variablen wird in der Anweisung an die Stelle der Parametermarkierungen gesetzt. params ist ein erforderlicher Parameter, der einen Eingabewert vom Typ ntext, nchar,oder nvarchar erfordert. Geben Sie einen Wert ein NULL , wenn die Anweisung nicht parametrisiert ist.

stmt

Definiert das Resultset des Cursors. Der stmt-Parameter ist erforderlich und ruft einen ntext-, nchar- oder nvarchar-Eingabewert auf.

bound_param

Kennzeichnet die optionale Verwendung zusätzlicher Parameter. bound_param ruft einen Eingabewert eines beliebigen Datentyps auf, um die verwendeten zusätzlichen Parameter festzulegen.

Beispiele

Im folgenden Beispiel wird eine einfache Anweisung vorbereitet und ausgeführt:

Declare @Out int;
EXEC sp_prepexec @Out output,
    N'@P1 nvarchar(128), @P2 nvarchar(100)',
    N'SELECT database_id, name
      FROM sys.databases
      WHERE name=@P1 AND state_desc = @P2',
          @P1 = 'tempdb', @P2 = 'ONLINE';
EXEC sp_unprepare @Out;