sp_prepare (Transact SQL)sp_prepare (Transact SQL)

APLICA-SE A: simSQL Server nãoBanco de Dados SQL do Azure simAzure Synapse Analytics (SQL DW) simParallel Data Warehouse APPLIES TO: yesSQL Server noAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Prepara um parametrizada Transact-SQLTransact-SQL instrução e retorna uma instrução manipular para execução.Prepares a parameterized Transact-SQLTransact-SQL statement and returns a statement handle for execution. sp_prepare é invocado pela especificação de ID = 11 em um pacote do protocolo TDS.sp_prepare is invoked by specifying ID = 11 in a tabular data stream (TDS) packet.

Ícone do link do artigo Convenções da sintaxe Transact-SQLArticle link icon Transact-SQL Syntax Conventions

SintaxeSyntax

sp_prepare handle OUTPUT, params, stmt, options  

ArgumentosArguments

Identificadorhandle
É gerado um SQL Server identificador preparado identificador.Is a SQL Server-generated prepared handle identifier. manipular é um parâmetro obrigatório com um int valor de retorno.handle is a required parameter with an int return value.

paramsparams
Identifica instruções parametrizadas.Identifies parameterized statements. O params definição de variáveis é substituída para marcadores de parâmetro na instrução.The params definition of variables is substituted for parameter markers in the statement. params é um parâmetro obrigatório que chama uma ntext, nchar, ou nvarchar valor de entrada.params is a required parameter that calls for an ntext, nchar, or nvarchar input value. Insira um valor NULL se a instrução não for parametrizada.Input a NULL value if the statement is not parameterized.

stmtstmt
Define o conjunto de resultados do cursor.Defines the cursor result set. O stmt parâmetro é obrigatório e chamadas para um ntext, nchar, ou nvarchar valor de entrada.The stmt parameter is required and calls for an ntext, nchar, or nvarchar input value.

optionsoptions
Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados de cursor.An optional parameter that returns a description of the cursor result set columns. opções requer o seguinte valor de entrada de int:options requires the following int input value:

ValorValue DescriçãoDescription
0x00010x0001 RETURN_METADATARETURN_METADATA

ExemplosExamples

A.A. O exemplo a seguir prepara e executa uma instrução simples.The following example prepares and executes a simple statement.

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

B.B. O exemplo a seguir prepara uma instrução no banco de dados AdventureWorks2016 e, posteriormente, executa-o usando o identificador.The following example prepares a statement in the AdventureWorks2016 database, and later executes it using the handle.

-- Prepare query
DECLARE @P1 int;  
EXEC sp_prepare @P1 output,   
    N'@Param int',  
    N'SELECT *
FROM Sales.SalesOrderDetail AS sod
INNER JOIN Production.Product AS p ON sod.ProductID = p.ProductID
WHERE SalesOrderID = @Param
ORDER BY Style DESC;';  

-- Return handle for calling application
SELECT @P1;
GO

Aqui está o conjunto de resultados.Here is the result set.

-----------
1

(1 row affected)

Em seguida, o aplicativo executa a consulta usando duas vezes o valor do identificador 1, antes de descartar o plano preparado.Then the application executes the query twice using the handle value 1, before discarding the prepared plan.

EXEC sp_execute 1, 49879;  
GO

EXEC sp_execute 1, 48766;
GO

EXEC sp_unprepare 1; 
GO

Consulte tambémSee Also

Procedimentos armazenados do sistema (Transact-SQL)System Stored Procedures (Transact-SQL)