Megosztás a következőn keresztül:


sp_prepare (Transact SQL)

Vonatkozik a következőkre:SQL ServerAzure SQL Managed InstanceAzure Synapse AnalyticsAnalitikai Platform System (PDW)

Paraméterezett Transact-SQL utasítást készít elő, és visszaad egy utasításkezelőt végrehajtásra. sp_prepare tábla adatfolyam (TDS) csomagban történő meghatározással ID = 11 idézik elő.

Transact-SQL szintaxis konvenciók

Szemantika

sp_prepare
    handle OUTPUT
    , params
    , stmt
    , options
[ ; ]

Arguments

fogantyú

Egy SQL Server által generált kezelőazonosító . A handle egy szükséges paraméter, amelynek int visszatérési értéke van.

params

Paraméteres utasításokat azonosít. a params egy szükséges OUTPUT paraméter, amely ntext, nchar vagy nvarchar bemeneti értéket kér. A paraméterjelek változók definíciója a paraméterjelölők helyett szerepel az utasításban. Értéket adj be NULL , ha az állítás nincs paraméterezve.

STMT

Meghatározza a kurzor eredményhalmazát. A stmt paraméter szükséges, és ntext, nchar vagy nvarchar bemeneti értéket kér.

beállítások

Nem kötelező paraméter, amely a kurzor eredményhalmaz oszlopainak leírását adja vissza. Az opció a következő bemeneti értéket igényli:

Érték Description
0x0001 RETURN_METADATA

Példák

A. Készíts elő és hajts végre egy nyilatkozatot

A következő példa egy alapvető Transact-SQL utasítást készít és hajt végre.

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. Készítsd elő és hajtsd végre egy utasítást a kiadvány segítségével

A következő példa előkészít egy utasítást az AdventureWorks2025 adatbázisban, majd később a fogantyulóval hajtja végre.

-- 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

Itt van az eredmények összessége.

1

A lekérdezést kétszer hajtsuk végre a kezelő érték 1használatával, mielőtt eldobnánk a felkészített tervet.

EXECUTE sp_execute 1, 49879;
GO

EXECUTE sp_execute 1, 48766;
GO

EXECUTE sp_unprepare 1;
GO