Observação
O acesso a essa página exige autorização. Você pode tentar entrar ou alterar diretórios.
O acesso a essa página exige autorização. Você pode tentar alterar os diretórios.
Aplica-se a: SQL Server Instância Gerenciada de SQL do Azure Azure
Synapse Analytics
Analytics Platform System (PDW)
Prepara uma instrução Transact-SQL parametrizada e retorna um identificador de instrução para execução.
sp_prepare é invocado especificando ID = 11 em um pacote TDS (fluxo de dados tabulares).
Convenções de sintaxe de Transact-SQL
Sintaxe
sp_prepare
handle OUTPUT
, params
, stmt
, options
[ ; ]
Argumentos
handle
Um identificador de identificador preparado gerado pelo SQL Server. handle é um parâmetro necessário com um valor de retorno int .
params
Identifica instruções parametrizadas.
params é um parâmetro OUTPUT necessário que chama um valor de entrada ntext, nchar ou nvarchar . A definição de parâmetros de variáveis é substituída por marcadores de parâmetro na instrução. Insira um NULL valor se a instrução não estiver parametrizada.
stmt
Define o conjunto de resultados do cursor. O parâmetro stmt é necessário e chama um valor de entrada ntext, nchar ou nvarchar .
options
Um parâmetro opcional que retorna uma descrição das colunas do conjunto de resultados de cursor. options requer o seguinte valor de entrada:
| Valor | Descrição |
|---|---|
0x0001 |
RETURN_METADATA |
Exemplos
R. Preparar e executar uma instrução
O exemplo a seguir prepara e executa uma instrução Transact-SQL básica.
DECLARE @handle AS INT;
EXECUTE sp_prepare
@handle OUTPUT, N'
@P1 NVARCHAR(128),
@P2 NVARCHAR(100)',
N'SELECT database_id, name FROM sys.databases WHERE name=@P1 AND state_desc = @P2';
EXECUTE sp_execute
@handle,
N'tempdb', N'ONLINE';
EXECUTE sp_unprepare @handle;
B. Preparar e executar uma instrução usando o identificador
O exemplo a seguir prepara uma instrução no AdventureWorks2025 banco de dados e, posteriormente, a executa usando o identificador.
-- Prepare query
DECLARE @handle AS INT;
EXECUTE sp_prepare
@handle 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 @handle;
GO
Veja a seguir o conjunto de resultados.
1
Execute a consulta duas vezes usando o valor 1do identificador , antes de descartar o plano preparado.
EXECUTE sp_execute 1, 49879;
GO
EXECUTE sp_execute 1, 48766;
GO
EXECUTE sp_unprepare 1;
GO