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 Veritabanı
Azure SQL Yönetilen Örneği
Azure Synapse Analytics
Analytics Platform Sistemi (PDW)
Microsoft Fabric SQL veritabanı
Gönderilen imleç deyimi veya toplu iş için bir plan derler, ardından imleci oluşturur ve doldurur.
sp_cursorprepexec, sp_cursorprepare ve sp_cursorexecuteişlevlerini birleştirir. Bu yordam, tablosal veri akışı (TDS) paketinde ID = 5 belirtilerek çağrılır.
Transact-SQL söz dizimi kuralları
Sözdizimi
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Bağımsız değişken
Önemli
Genişletilmiş saklı yordamlar için bağımsız değişkenler, Sözdizimi bölümünde açıklandığı gibi belirli bir sırada girilmelidir. Parametreler sıra dışı girilirse bir hata iletisi oluşur.
hazırlanmış tutamaç
SQL Server tarafından oluşturulan hazırlanmış tanıtıcı tanımlayıcısı. Hazırlanan tanıtıcı parametresi gereklidir ve int döndürür.
İmleç
SQL Server tarafından oluşturulan imleci tanımlayıcı.
İmleç parametresi, bu imleç üzerinde hareket eden sonraki tüm yordamlarda sağlanması gereken bir parametredir, örneğin, sp_cursorfetch.
parametreler
Parametreli deyimleri tanımlar. değişkenlerin parametreleri deyimindeki parametre işaretçileri ile değiştirilir. params parametresi gereklidir. Belirtildiğinde , params bir ntext, nchar veya nvarchar giriş değeri çağırır.
Not
deyimi parametrelendirildiğinde ve scrollopt PARAMETERIZED_STMT değeri AÇILDI olduğunda giriş değeri olarak ntext dizesi kullanın.
deyimi
İmleç sonuç kümesini tanımlar. deyimi parametresi gereklidir ve ntext, ncharveya nvarchar giriş değerini çağırır.
Not
Deyim değerini belirtme kuralları, deyimdizesi veri türünün ntext olması dışında sp_cursoropen ile aynıdır.
seçenekleri
İmleç sonuç kümesi sütunlarının açıklamasını döndüren isteğe bağlı bir parametre. options parametresi aşağıdaki int giriş değerini gerektirir.
| Değer | Açıklama |
|---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Kaydırma seçeneği. scrollopt parametresi isteğe bağlıdır. Belirtildiğinde, scrollopt aşağıdaki int giriş değerlerinden birini gerektirir.
| Değer | Açıklama |
|---|---|
0x0001 |
KEYSET |
0x0002 |
DİNAMİK |
0x0004 |
FORWARD_ONLY |
0x0008 |
DURUK |
0x10 |
FAST_FORWARD |
0x1000 |
PARAMETERIZED_STMT |
0x2000 |
AUTO_FETCH |
0x4000 |
AUTO_CLOSE |
0x8000 |
CHECK_ACCEPTED_TYPES |
0x10000 |
KEYSET_ACCEPTABLE |
0x20000 |
DYNAMIC_ACCEPTABLE |
0x40000 |
FORWARD_ONLY_ACCEPTABLE |
0x80000 |
STATIC_ACCEPTABLE |
0x100000 |
FAST_FORWARD_ACCEPTABLE |
İstenen seçeneğin deyimi tarafından tanımlanan imleç için uygun olma olasılığı nedeniyle, bu parametre hem giriş hem de çıkış görevi görür. Bu gibi durumlarda, SQL Server uygun bir tür atar ve bu değeri değiştirir.
Eşzamanlılık denetimi seçeneği. ccopt parametresi isteğe bağlıdır. Belirtildiğinde , ccopt parametresi aşağıdaki int giriş değerlerinden birini gerektirir.
| Değer | Açıklama |
|---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (eski adıyla LOCKCC) |
0x0004 |
IYIMSER (daha önce OPTCC olarak bilinirdi) |
0x0008 |
IYIMSER (daha önce OPTCCVAL olarak bilinirdi) |
0x2000 |
ALLOW_DIRECT |
0x4000 |
UPDT_IN_PLACE |
0x8000 |
CHECK_ACCEPTED_OPTS |
0x10000 |
READ_ONLY_ACCEPTABLE |
0x20000 |
SCROLL_LOCKS_ACCEPTABLE |
0x40000 |
OPTIMISTIC_ACCEPTABLE |
0x80000 |
OPTIMISITC_ACCEPTABLE |
scrolloptgibi, SQL Server istenenden farklı bir değer atayabilir.
satır sayısı
ile AUTO_FETCHkullanılacak getirme arabellek satırlarının sayısını belirten isteğe bağlı bir parametre. Varsayılan değer 20 satırdır.
Rowcount parametresi, giriş değeri olarak atandığında ve dönüş değerine göre farklı davranır.
| Giriş değeri olarak | Dönüş değeri olarak |
|---|---|
| AUTO_FETCH FAST_FORWARD imleçlerle belirtildiğinde satır sayısı getirme arabelleğine yerleştirecek satır sayısını temsil eder. | Sonuç kümesindeki satır sayısını temsil eder.
ScrolloptAUTO_FETCH değeri belirtildiğinde, rowcount getirme arabelleğine getirilen satır sayısını döndürür. |
parameter_name
params parametresinde tanımlandığı gibi bir veya daha fazla parametre adı belirtir. parametrelere dahil edilen her parametre için bir parametre sağlanmalıdır. Parametrelerdeki Transact-SQL deyiminde veya toplu işte tanımlı parametre olmadığında bu parametre gerekli değildir.
Dönüş kodu değerleri
params değeri döndürürseNULL, deyimi parametreli değildir.
Örnekler
Bu örnekte sp_cursorprepexeckullanımı gösterilmektedir. Adı "Kirby" olan tüm kayıtları döndüren veritabanındaki tabloya Person karşı AdventureWorks2025 bir sorgu çalıştırır.
USE AdventureWorks2022;
GO
DECLARE @prep_handle INT,
@cursor INT,
@scrollopt INT = 4104,
@ccopt INT = 8193,
@rowcnt INT;
EXECUTE sp_cursorprepexec
@prep_handle OUTPUT,
@cursor OUTPUT,
N'@fName nvarchar(100)',
N'SELECT FirstName, LastName FROM Person.Person WHERE FirstName = @fName',
@scrollopt,
@ccopt,
@rowcnt OUTPUT,
'Kirby';
EXECUTE sp_cursorfetch @cursor;