Not
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analysplattformssystem (PDW)
Förbereder ett parameteriserat Transact-SQL-uttalande och returnerar ett uttalandeshandtag för exekvering.
sp_prepare anropas genom att specificera ID = 11 i ett tabellariskt dataströmspaket (TDS).
Transact-SQL syntaxkonventioner
Syntax
sp_prepare
handle OUTPUT
, params
, stmt
, options
[ ; ]
Arguments
handtag
En SQL Server-genererad förberedd handle-identifierare . Handle är en obligatorisk parameter med ett int-returvärde .
params
Identifierar parametriserade instruktioner.
params är en obligatorisk OUTPUT-parameter som kräver ett ntext-, nchar- eller nvarchar-indatavärde .
params definition av variabler ersätts med parametermarkörer i -instruktionen. Mata in ett NULL värde om satsen inte är parameteriserad.
STMT
Definierar markörens resultatuppsättning. Stmt-parametern krävs och kräver ett ntext-, nchar- eller nvarchar-indatavärde.
Alternativ
En valfri parameter som returnerar en beskrivning av kolumnerna i markörresultatuppsättningen. Options kräver följande indatavärde:
| Värde | Description |
|---|---|
0x0001 |
RETURN_METADATA |
Examples
A. Förbered och genomför ett uttalande
Följande exempel förbereder och exekverar en grundläggande Transact-SQL-sats.
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. Förbered och kör ett uttalande med handtaget
Följande exempel förbereder ett uttalande i databasen AdventureWorks2025 och exekverar det senare med handtaget.
-- 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
Här är resultatet.
1
Kör frågan två gånger med handtagsvärdet 1, innan du kastar den förberedda planen.
EXECUTE sp_execute 1, 49879;
GO
EXECUTE sp_execute 1, 48766;
GO
EXECUTE sp_unprepare 1;
GO