Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Şunlar için geçerlidir:SQL Server
Azure SQL Managed Instance
Azure Synapse Analytics
Analitik Platform Sistemi (PDW)
Parametreli bir Transact-SQL ifadesi hazırlar ve çalıştırmak için bir ifade tutamacı döndürür.
sp_prepare tablolu veri akışı (TDS) paketinde belirtilerek ID = 11 çağrılır.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_prepare
handle OUTPUT
, params
, stmt
, options
[ ; ]
Arguments
kulp
SQL Server tarafından oluşturulan hazırlanmış bir handle tanımlayıcısı. handle (tutamak ) int dönüş değeri olan gerekli bir parametredir.
parametreler
Parametreli deyimleri tanımlar.
params , ntext, nchar veya nvarchar giriş değeri gerektiren gerekli bir OUTPUT parametresidir. değişkenlerin parametreleri deyimindeki parametre işaretçileri ile değiştirilir. Eğer ifade parametrelendirilmemişse bir NULL değer girin.
STMT
İmleç sonuç kümesini tanımlar. Stmt parametresi gereklidir ve ntext, nchar veya nvarchar giriş değeri çağrır.
Seçenekler
İmleç sonuç kümesi sütunlarının açıklamasını döndüren isteğe bağlı bir parametre. seçenekler aşağıdaki giriş değerini gerektirir:
| Değer | Description |
|---|---|
0x0001 |
RETURN_METADATA |
Örnekler
A. Bir ifade hazırlayın ve yürütün
Aşağıdaki örnek, temel bir Transact-SQL ifadesi hazırlayır ve yürütür.
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. Bir ifadeyi şu tutmayı kullanarak hazırlayın ve çalıştırın
Aşağıdaki örnek, veritabanında AdventureWorks2025 bir ifade hazırlar ve daha sonra bu ifadeyi tutamacı kullanarak çalıştırır.
-- 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
Sonuç kümesi aşağıdadır.
1
Hazırlanan planı atmadan önce sorguyu handle değerini 1kullanarak iki kez çalıştırın.
EXECUTE sp_execute 1, 49879;
GO
EXECUTE sp_execute 1, 48766;
GO
EXECUTE sp_unprepare 1;
GO