sp_prepare (SQL Transaksi)

Berlaku untuk:yes SQL Server (semua versi yang didukung) YesAzure SQL Managed Instance yesAzure Synapse Analytics Analytics yesPlatform System (PDW)

Menyiapkan pernyataan Transact-SQL berparameter dan mengembalikan handel pernyataan untuk eksekusi. sp_prepare dipanggil dengan menentukan ID = 11 dalam paket aliran data tabular (TDS).

Article link iconKonvensi Sintaksis T-SQL

Sintaks

sp_prepare handle OUTPUT, params, stmt, options  

Argumen

menangani
Adalah pengidentifikasi handel yang disiapkan yang dihasilkan SQL Server. handel adalah parameter yang diperlukan dengan nilai pengembalian int .

params
Mengidentifikasi pernyataan berparameter. Definisi param variabel diganti dengan penanda parameter dalam pernyataan . params adalah parameter yang diperlukan yang memanggil nilai input ntext, nchar, atau nvarchar . Masukkan nilai NULL jika pernyataan tidak diparameterkan.

stmt
Menentukan kumpulan hasil kursor. Parameter stmt diperlukan dan memanggil nilai input ntext, nchar, atau nvarchar .

opsi
Parameter opsional yang mengembalikan deskripsi kolom kumpulan hasil kursor. opsi memerlukan nilai input int berikut:

Nilai Deskripsi
0x0001 RETURN_METADATA

Contoh

A. Contoh berikut menyiapkan dan menjalankan pernyataan sederhana.

DECLARE @P1 INT;  
EXEC sp_prepare @P1 OUTPUT,   
    N'@P1 NVARCHAR(128), @P2 NVARCHAR(100)',  
    N'SELECT database_id, name FROM sys.databases WHERE name=@P1 AND state_desc = @P2';  
EXEC sp_execute @P1, N'tempdb', N'ONLINE';  
EXEC sp_unprepare @P1;  

B. Contoh berikut menyiapkan pernyataan dalam database AdventureWorks2016, dan kemudian menjalankannya menggunakan handel.

-- Prepare query
DECLARE @P1 INT;  
EXEC sp_prepare @P1 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 @P1;
GO

Berikut adalah hasil yang ditetapkan.

-----------
1

(1 row affected)

Kemudian aplikasi menjalankan kueri dua kali menggunakan nilai handel 1, sebelum membuang rencana yang disiapkan.

EXEC sp_execute 1, 49879;  
GO

EXEC sp_execute 1, 48766;
GO

EXEC sp_unprepare 1; 
GO

Lihat juga

Prosedur Tersimpan Sistem (Transact-SQL)