Catatan
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba masuk atau mengubah direktori.
Akses ke halaman ini memerlukan otorisasi. Anda dapat mencoba mengubah direktori.
Berlaku untuk:SQL Server
Database Azure
SQLInstans
Terkelola Azure SQLAzure Synapse Analytics
Sistem Platform Analitik (PDW)
Database SQL di Microsoft Fabric
Mengkompilasi paket untuk pernyataan kursor atau batch yang dikirimkan, lalu membuat dan mengisi kursor.
sp_cursorprepexec menggabungkan fungsi dan sp_cursorpreparesp_cursorexecute. Prosedur ini dipanggil dengan menentukan ID = 5 dalam paket aliran data tabular (TDS).
Sintaks
sp_cursorprepexec prepared handle OUTPUT , cursor OUTPUT , params , statement , options
[ , scrollopt [ , ccopt [ , rowcount ] ] ]
[ , '@parameter_name [ , ...n ]' ]
Argumen
Penting
Argumen untuk prosedur tersimpan yang diperluas harus dimasukkan dalam urutan tertentu seperti yang dijelaskan di bagian Sintaks. Jika parameter dimasukkan di luar urutan, pesan kesalahan terjadi.
handel yang disiapkan
SQL Server menghasilkan pengidentifikasi handel yang disiapkan. Parameter handel yang disiapkan diperlukan dan mengembalikan int.
Kursor
Pengidentifikasi kursor yang dihasilkan SQL Server. Parameter kursor adalah parameter yang diperlukan yang harus disediakan pada semua prosedur berikutnya yang bertindak berdasarkan kursor ini, misalnya, sp_cursorfetch.
params
Mengidentifikasi pernyataan berparameter. Definisi param variabel digantikan untuk penanda parameter dalam pernyataan. Parameter param diperlukan . Ketika ditentukan, param memanggil nilai input ntext, nchar, atau nvarchar .
Catatan
Gunakan string ntext sebagai nilai input saat pernyataan diparameterkan dan nilai PARAMETERIZED_STMT scrollopt AKTIF.
statement
Menentukan kumpulan hasil kursor. Parameter pernyataan diperlukan dan memanggil nilai input ntext, nchar, atau nvarchar .
Catatan
Aturan untuk menentukan nilai pernyataan sama dengan sp_cursoropen, dengan pengecualian bahwa jenis data string pernyataan harus ntext.
opsi
Parameter opsional yang mengembalikan deskripsi kolom kumpulan hasil kursor. Parameter opsi memerlukan nilai input int berikut.
| Nilai | Deskripsi |
|---|---|
0x0001 |
RETURN_METADATA |
scrollopt
Opsi gulir. Parameter scrollopt bersifat opsional. Saat ditentukan, scrollopt memerlukan salah satu nilai input int berikut.
| Nilai | Deskripsi |
|---|---|
0x0001 |
SET KUNCI |
0x0002 |
DINAMIS |
0x0004 |
FORWARD_ONLY |
0x0008 |
STATIS |
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 |
Karena kemungkinan bahwa opsi yang diminta tidak sesuai untuk kursor yang ditentukan oleh pernyataan, parameter ini berfungsi sebagai input dan output. Dalam kasus seperti itu, SQL Server menetapkan jenis yang sesuai dan memodifikasi nilai ini.
ccopt
Opsi kontrol konkurensi. Parameter ccopt bersifat opsional. Jika ditentukan, parameter ccopt memerlukan salah satu nilai input int berikut.
| Nilai | Deskripsi |
|---|---|
0x0001 |
READ_ONLY |
0x0002 |
SCROLL_LOCKS (sebelumnya dikenal sebagai LOCKCC) |
0x0004 |
OPTIMIS (sebelumnya dikenal sebagai OPTCC) |
0x0008 |
OPTIMIS (sebelumnya dikenal sebagai OPTCCVAL) |
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 |
Seperti halnya scrollopt, SQL Server dapat menetapkan nilai yang berbeda dari yang diminta.
rowcount
Parameter opsional yang menandakan jumlah baris buffer pengambilan untuk digunakan dengan AUTO_FETCH. Defaultnya adalah 20 baris. Parameter rowcount bertingkah berbeda saat ditetapkan sebagai nilai input versus nilai pengembalian.
| Sebagai nilai input | Sebagai nilai yang dikembalikan |
|---|---|
| Ketika AUTO_FETCH ditentukan dengan FAST_FORWARD kursor rowcount mewakili jumlah baris yang akan ditempatkan ke dalam buffer pengambilan. | Mewakili jumlah baris dalam tataan hasil. Saat nilai scrolloptAUTO_FETCH ditentukan, rowcount mengembalikan jumlah baris yang diambil ke dalam buffer pengambilan. |
parameter_name
Menunjuk satu atau beberapa nama parameter seperti yang didefinisikan dalam parameter param . Harus ada parameter yang disediakan untuk setiap parameter yang disertakan dalam param. Parameter ini tidak diperlukan ketika pernyataan Transact-SQL atau batch dalam param tidak memiliki parameter yang ditentukan.
Mengembalikan nilai kode
Jika nilai paramsNULLmengembalikan , pernyataan tidak diparameterkan.
Contoh
Contoh ini menunjukkan penggunaan sp_cursorprepexec. Ini menjalankan kueri terhadap Person tabel dalam database yang AdventureWorks2025 mengembalikan semua rekaman di mana nama depan adalah "Kirby".
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;