sp_describe_cursor_columns (T-SQL)
Berlaku untuk: SQL Server
Melaporkan atribut kolom dalam kumpulan hasil kursor server.
Sintaks
sp_describe_cursor_columns
[ @cursor_return = ] cursor_return OUTPUT
, [ @cursor_source = ] { N'local' | N'global' | N'*cursor_source*' }
, [ @cursor_identity = ] N'cursor_identity'
[ ; ]
Argumen
[ @cursor_return = ] cursor_return OUTPUT
Nama variabel kursor yang dideklarasikan untuk menerima output kursor. @cursor_return adalah parameter OUTPUT dari jenis int, tanpa default, dan tidak boleh dikaitkan dengan kursor apa pun pada saat sp_describe_cursor_columns
itu dipanggil. Kursor yang dikembalikan adalah kursor baca-saja yang dapat digulir, dinamis.
[ @cursor_source = ] { N'local' | N'global' | N'cursor_source' }
Menentukan apakah kursor yang dilaporkan ditentukan, dengan menggunakan nama kursor lokal , kursor global , atau variabel kursor. @cursor_source adalah nvarchar(30), tanpa default.
[ @cursor_identity = ] N'cursor_identity'
Nama kursor yang dibuat oleh DECLARE CURSOR
pernyataan. @cursor_identity adalah nvarchar(128), tanpa default.
Jika kursor memiliki
LOCAL
kata kunci, atau default keLOCAL
, @cursor_identity adalahlocal
.Jika kursor memiliki
GLOBAL
kata kunci, atau default keGLOBAL
, @cursor_identity adalahglobal
. @cursor_identity juga dapat menjadi nama kursor server API yang dibuka oleh aplikasi ODBC, lalu dinamai dengan memanggilSQLSetCursorName
.Jika tidak, @cursor_identity adalah nama variabel kursor yang terkait dengan kursor terbuka.
Mengembalikan nilai kode
Tidak ada.
Kursor dikembalikan
sp_describe_cursor_columns
merangkum laporannya sebagai parameter output Transact-SQL cursor
. Ini memungkinkan batch Transact-SQL, prosedur tersimpan, dan pemicu untuk bekerja dengan output satu baris pada satu waktu. Ini juga berarti bahwa prosedur tidak dapat dipanggil langsung dari fungsi API database. Parameter cursor
output harus terikat ke variabel program, tetapi API database tidak mendukung parameter atau variabel pengikatan cursor
.
Tabel berikut ini memperlihatkan format kursor yang dikembalikan dengan menggunakan sp_describe_cursor_columns
.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
column_name |
nama sysname | Nama ditetapkan ke kolom tataan hasil. Kolom adalah NULL jika kolom ditentukan tanpa klausa yang AS menyertainya.Dapat diubah ke null. |
ordinal_position |
int | Posisi relatif kolom dari kolom paling kiri dalam tataan hasil. Kolom pertama berada di posisi 0 . |
column_characteristics_flags |
int | Bitmask yang menunjukkan informasi yang disimpan di DBCOLUMNFLAGS OLE DB. Bisa berupa satu atau kombinasi dari nilai berikut:1 = Bookmark2 = Panjang tetap4 = Nullable8 = Penerapan versi baris16 = Kolom yang dapat diperbarui (diatur untuk kolom kursor yang diproyeksikan yang tidak ada FOR UPDATE klausa dan, jika ada kolom seperti itu, hanya boleh satu per kursor).Ketika nilai bit digabungkan, karakteristik nilai bit gabungan berlaku. Misalnya, jika nilai bit adalah 6 , kolom adalah kolom panjang tetap (2 ), nullable (4 ). |
column_size |
int | Ukuran maksimum yang mungkin untuk nilai dalam kolom ini. |
data_type_sql |
smallint | Angka yang menunjukkan jenis data SQL Server kolom. |
column_precision |
kecil | Presisi maksimum kolom sesuai bPrecision nilai dalam OLE DB. |
column_scale |
kecil | Jumlah digit di sebelah kanan titik desimal untuk jenis data numerik atau desimal sesuai bScale nilai dalam OLE DB. |
order_position |
int | Jika kolom berpartisipasi dalam urutan kumpulan hasil, posisi kolom dalam kunci pesanan relatif terhadap kolom paling kiri. |
order_direction |
varchar(1) | A = Kolom berada dalam kunci pesanan dan urutannya naik.D = Kolom berada dalam kunci pesanan dan pengurutan turun.NULL = Kolom tidak berpartisipasi dalam pengurutan.Dapat diubah ke null. |
hidden_column |
smallint | 0 = kolom ini muncul di daftar pilih.1 = Dicadangkan untuk digunakan di masa mendatang. |
columnid |
int | ID kolom kolom dasar. Jika kolom kumpulan hasil dibangun dari ekspresi, columnid adalah -1 . |
objectid |
int | ID objek objek atau tabel dasar yang menyediakan kolom. Jika kolom kumpulan hasil dibangun dari ekspresi, objectid adalah -1 . |
dbid |
int | ID database yang berisi tabel dasar yang menyediakan kolom. Jika kolom kumpulan hasil dibangun dari ekspresi, dbid adalah -1 . |
dbname |
nama sysname | Nama database yang berisi tabel dasar yang menyediakan kolom. Jika kolom kumpulan hasil dibangun dari ekspresi, dbname adalah NULL .Dapat diubah ke null. |
Keterangan
sp_describe_cursor_columns
menjelaskan atribut kolom dalam kumpulan hasil kursor server, seperti nama dan jenis data setiap kursor. Gunakan sp_describe_cursor
untuk deskripsi atribut global kursor server. Gunakan sp_describe_cursor_tables
untuk laporan tabel dasar yang dirujuk oleh kursor. Untuk mendapatkan laporan kursor server Transact-SQL yang terlihat pada koneksi, gunakan sp_cursor_list
.
Izin
Memerlukan keanggotaan dalam peran publik .
Contoh
Contoh berikut membuka kursor global dan menggunakan sp_describe_cursor_columns
untuk melaporkan kolom yang digunakan dalam kursor.
USE AdventureWorks2022;
GO
-- Declare and open a global cursor.
DECLARE abc CURSOR KEYSET FOR
SELECT LastName
FROM Person.Person;
GO
OPEN abc;
-- Declare a cursor variable to hold the cursor output variable
-- from sp_describe_cursor_columns.
DECLARE @Report CURSOR;
-- Execute sp_describe_cursor_columns into the cursor variable.
EXEC master.dbo.sp_describe_cursor_columns
@cursor_return = @Report OUTPUT,
@cursor_source = N'global',
@cursor_identity = N'abc';
-- Fetch all the rows from the sp_describe_cursor_columns output cursor.
FETCH NEXT from @Report;
WHILE (@@FETCH_STATUS <> -1)
BEGIN
FETCH NEXT from @Report;
END
-- Close and deallocate the cursor from sp_describe_cursor_columns.
CLOSE @Report;
DEALLOCATE @Report;
GO
-- Close and deallocate the original cursor.
CLOSE abc;
DEALLOCATE abc;
GO
Konten terkait
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk