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 Synapse Analytics
Analytics Platform Sistemi (PDW)
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_cursorexecute
iş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ırlanmış tanıtıcı gereklidir ve intdöndürür.
İmleç
SQL Server tarafından oluşturulan imleci tanımlayıcı.
imleç, bu imleç üzerinde hareket eden sonraki tüm yordamlarda ( örneğin, sp_cursorfetch
) sağlanması gereken bir parametredir.
parametreler
Parametreli deyimleri tanımlar. değişkenlerin parametreleri deyimindeki parametre işaretçileri ile değiştirilir. params, ntext, ncharveya nvarchar giriş değerini çağıran gerekli bir parametredir.
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
deyimi değerini belirtme kuralları, deyimi dize 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. seçenekleri aşağıdaki int giriş değerini gerektirir.
Değer | Açıklama |
---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Kaydırma seçeneği. scrollopt, aşağıdaki int giriş değerlerinden birini gerektiren isteğe bağlı bir parametredir.
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, aşağıdaki int giriş değerlerinden birini gerektiren isteğe bağlı bir parametredir.
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ı
AUTO_FETCH ile kullanı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. satır sayısı, giriş değeri olarak atandığında ve dönüş değeri olarak atandığında 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. scrollopt AUTO_FETCH değeri belirtildiğinde, satır sayısı getirme arabelleğine getirilen satır sayısını döndürür. |
parameter_name
parametreler bağımsız değişkeninde tanımlandığı gibi bir veya daha fazla parametre adı belirtir. parametrelere dahil edilen her parametre için bir parametre sağlanmalıdır. parametreler Transact-SQL deyiminde veya toplu işte tanımlı parametre olmadığında bu bağımsız değişken gerekli değildir.
Dönüş kodu değerleri
parametrelerNULL
bir değer döndürürse, deyimi parametreli değildir.
Örnekler
Bu örnekte sp_cursorprepexec
kullanımı gösterilmektedir. adı "Katherine" olan tüm kayıtları döndüren AdventureWorks2022
veritabanındaki Person
tablosunda 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,
'Katherine';
EXECUTE sp_cursorfetch @cursor;