Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
Van toepassing op:SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics Platform Systeem (PDW)
Bereidt een geparametriseerde Transact-SQL-instructie voor en geeft een statementhandle terug voor uitvoering.
sp_prepare wordt aangeroepen door te specificeren ID = 11 in een tabular data stream (TDS)-pakket.
Transact-SQL syntaxis-conventies
Syntaxis
sp_prepare
handle OUTPUT
, params
, stmt
, options
[ ; ]
Arguments
handvat
Een door SQL Server gegenereerde voorbereide handle-identificatie . handle is een vereiste parameter met een int-returnwaarde.
params
Identificeert geparameteriseerde instructies.
params is een vereiste OUTPUT-parameter die vraagt om een ntext-, nchar- of nvarchar-invoerwaarde . De parameters definitie van variabelen wordt vervangen door parametermarkeringen in de instructie. Voer een NULL waarde in als de instructie niet geparametriseerd is.
STMT
Hiermee definieert u de resultatenset van de cursor. De stmt-parameter is vereist en vereist een ntext-, nchar- of nvarchar-invoerwaarde .
Opties
Een optionele parameter die een beschrijving van de kolommen van de cursorresultatenset retourneert. Options vereist de volgende invoerwaarde:
| Waarde | Description |
|---|---|
0x0001 |
RETURN_METADATA |
Voorbeelden
Eén. Bereid een statement voor en voer het uit
Het volgende voorbeeld bereidt een basis-Transact-SQL-instructie voor en voert deze uit.
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. Bereid een instructie voor en voer deze uit met behulp van de handle
Het volgende voorbeeld bereidt een instructie voor in de AdventureWorks2025 database en voert deze later uit met behulp van de handle.
-- 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
Hier is het resultatenoverzicht.
1
Voer de query twee keer uit met de handlewaarde 1, voordat het voorbereide plan wordt verworpen.
EXECUTE sp_execute 1, 49879;
GO
EXECUTE sp_execute 1, 48766;
GO
EXECUTE sp_unprepare 1;
GO