sp_prepexec (Transact-SQL)


THIS TOPIC APPLIES TO:yesSQL Server (starting with 2008)noAzure SQL DatabasenoAzure SQL Data Warehouse noParallel Data Warehouse

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

Topic link icon 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 @P1 int;  
EXEC sp_prepexec @P1 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 @P1;  

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

Community Additions