sp_prepexec (Transact-SQL)

Applies to: SQL Server

Prepares and executes a parameterized Transact-SQL statement. sp_prepexec combines the functions of sp_prepare and sp_execute. This action is invoked by ID =13 in a tabular data stream (TDS) packet.

Transact-SQL syntax conventions


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


Is the SQL Server-generated handle identifier. handle is a required parameter with an int return value.

Identifies parameterized statements. The params definition of variables is substituted for parameter markers in the statement. params is a required parameter that calls for an ntext, nchar, or nvarchar input value. Input a NULL value if the statement is not parameterized.

Defines the cursor result set. The stmt parameter is required and calls for an ntext, nchar, or nvarchar input value.

Signifies the optional use of additional parameters. bound_param calls for an input value of any data type to designate the additional parameters in use.


The following example prepares and executes a simple statement:

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;  

See also

sp_prepare (Transact SQL)
sp_execute (Transact-SQL)
System Stored Procedures (Transact-SQL)