Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí na:SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analytický platformový systém (PDW)
Připraví parametrizovaný Transact-SQL příkaz a vrátí handle příkazu k vykonání.
sp_prepare je vyvolán zadáním ID = 11 v tabulárním datovém toku (TDS) paketu.
Syntaxe
sp_prepare
handle OUTPUT
, params
, stmt
, options
[ ; ]
Arguments
klika
Identifikátor připraveného handle vytvořený SQL Serverem. handle je povinný parametr s vrácenou hodnotou int .
params
Identifikuje parametrizované příkazy.
params je povinný VÝSTUPNÍ parametr, který vyžaduje vstupní hodnotu ntext, nchar nebo nvarchar .
parametry definice proměnných se v příkazu nahradí značkami parametrů. Zadejte hodnotu NULL , pokud příkaz není parametrizován.
STMT
Definuje sadu výsledků kurzoru. Parametr stmt je vyžadován a vyžaduje vstupní hodnotu ntext, nchar nebo nvarchar .
volby
Volitelný parametr, který vrátí popis sloupců sady výsledků kurzoru. Opce vyžadují následující vstupní hodnotu:
| Hodnota | Description |
|---|---|
0x0001 |
RETURN_METADATA |
Examples
A. Připravte a provedete prohlášení
Následující příklad připravuje a vykonává základní Transact-SQL příkaz.
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. Připravte a provedete příkaz pomocí handle
Následující příklad připravuje příkaz v databázi AdventureWorks2025 a později jej vykoná pomocí rukojeti.
-- 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
Tady je soubor výsledků.
1
Dotaz proveďte dvakrát s hodnotou 1handle , než připravený plán zahodíte.
EXECUTE sp_execute 1, 49879;
GO
EXECUTE sp_execute 1, 48766;
GO
EXECUTE sp_unprepare 1;
GO
Související obsah
- uložené procedury systému (Transact-SQL)