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 = ] output_cursor_variable OUTPUT
{ [ , [ @cursor_source = ] N'local' ,
[ @cursor_identity = ] N'local_cursor_name' ]
| [ , [ @cursor_source = ] N'global' ,
[ @cursor_identity = ] N'global_cursor_name' ]
| [ , [ @cursor_source = ] N'variable' ,
[ @cursor_identity = ] N'input_cursor_variable' ]
}
Argumen
[ @cursor_return= ] output_cursor_variable OUTPUT
Adalah nama variabel kursor yang dideklarasikan untuk menerima output kursor. output_cursor_variable adalah kursor, tanpa default, dan tidak boleh dikaitkan dengan kursor apa pun pada saat sp_describe_cursor_columns dipanggil. Kursor yang dikembalikan adalah kursor baca-saja yang dapat digulir, dinamis.
[ @cursor_source= ] { N'local' | N'global' | N'variabel' }
Menentukan apakah kursor yang dilaporkan ditentukan dengan menggunakan nama kursor lokal, kursor global, atau variabel kursor. Parameternya adalah nvarchar(30).
[ @cursor_identity= ] N'local_cursor_name '
Adalah nama kursor yang dibuat oleh pernyataan DECLARE CURSOR yang memiliki kata kunci LOCAL atau yang default ke LOCAL. local_cursor_name adalah nvarchar(128).
[ @cursor_identity= ] N'global_cursor_name '
Adalah nama kursor yang dibuat oleh pernyataan DECLARE CURSOR yang memiliki kata kunci GLOBAL atau yang default ke GLOBAL. global_cursor_name adalah nvarchar(128).
global_cursor_name juga dapat menjadi nama kursor server API yang dibuka oleh aplikasi ODBC lalu dinamai dengan memanggil SQLSetCursorName.
[ @cursor_identity= ] N'input_cursor_variable '
Adalah nama variabel kursor yang terkait dengan kursor terbuka. input_cursor_variable adalah nvarchar(128).
Mengembalikan Nilai Kode
Tidak ada
Kursor Dikembalikan
sp_describe_cursor_columns merangkum laporannya sebagai parameter output kursor Transact-SQL. 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 output kursor harus terikat ke variabel program, tetapi API database tidak mendukung parameter atau variabel kursor pengikatan.
Tabel berikut ini memperlihatkan format kursor yang dikembalikan dengan menggunakan sp_describe_cursor_columns.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
column_name | sysname (nullable) | Nama ditetapkan ke kolom tataan hasil. Kolom adalah NULL jika kolom ditentukan tanpa klausa AS yang menyertainya. |
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 dalam DBCOLUMNFLAGS di OLE DB. Bisa berupa salah satu atau kombinasi dari yang berikut ini: 1 = Bookmark 2 = Panjang tetap 4 = Nullable 8 = Penerapan versi baris 16 = Kolom yang dapat diperbarui (diatur untuk kolom kursor yang diproyeksikan yang tidak memiliki klausa FOR UPDATE dan, jika ada kolom seperti itu, bisa hanya satu per kursor). Ketika nilai bit digabungkan, karakteristik nilai bit gabungan berlaku. Misalnya, jika nilai bit adalah 6, kolom adalah kolom dengan panjang tetap (2), dapat diubah ke null (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 nilai bPresisi dalam OLE DB. |
column_scale | kecil | Jumlah digit di sebelah kanan titik desimal untuk jenis data numerik atau desimal sesuai nilai bScale di 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)(nullable) | A = Kolom berada dalam kunci pesanan dan urutannya naik. D = Kolom berada dalam kunci pesanan dan urutannya menur NULL = Kolom tidak berpartisipasi dalam pengurutan. |
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. |
nama db | nama sysname (nullable) |
Nama database yang berisi tabel dasar yang menyediakan kolom. Jika kolom tataan hasil dibangun dari ekspresi, dbname adalah 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
Lihat Juga
Kursor
CURSOR_STATUS (T-SQL)
DEKLARASIKAN KURSOR (Transact-SQL)
sp_describe_cursor (T-SQL)
sp_cursor_list (T-SQL)
sp_describe_cursor_tables (T-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)
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