sp_special_columns (T-SQL)
Berlaku untuk: SQL ServerAzure SQL Database Azure SQL Managed Instance
Mengembalikan kumpulan kolom optimal yang secara unik mengidentifikasi baris dalam tabel. Juga mengembalikan kolom yang diperbarui secara otomatis saat nilai apa pun dalam baris diperbarui oleh transaksi.
Sintaks
sp_special_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @col_type = ] 'col_type' ]
[ , [ @scope = ] 'scope' ]
[ , [ @nullable = ] 'nullable' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Argumen
[ @table_name = ] N'table_name'
Nama tabel yang digunakan untuk mengembalikan informasi katalog. @table_name adalah sysname, tanpa default. Pencocokan pola kartubebas tidak didukung.
[ @table_owner = ] N'table_owner'
Pemilik tabel tabel yang digunakan untuk mengembalikan informasi katalog. @table_owner adalah sysname, dengan default NULL
. Pencocokan pola kartubebas tidak didukung. Jika @table_owner tidak ditentukan, aturan visibilitas tabel default dari sistem manajemen database (DBMS) yang mendasar berlaku.
Di SQL Server, jika pengguna saat ini memiliki tabel dengan nama yang ditentukan, kolom tabel tersebut dikembalikan. Jika @table_owner tidak ditentukan, dan pengguna saat ini tidak memiliki tabel @table_name yang ditentukan, prosedur ini mencari tabel @table_name yang ditentukan yang dimiliki oleh pemilik database. Jika tabel ada, kolomnya dikembalikan.
[ @table_qualifier = ] N'table_qualifier'
Nama kualifikasi tabel. @table_qualifier adalah sysname, dengan default NULL
. Berbagai produk DBMS mendukung penamaan tiga bagian untuk tabel (<qualifier>.<owner>.<name>
). Di SQL Server, kolom ini mewakili nama database. Dalam beberapa produk, ini mewakili nama server lingkungan database tabel.
[ @col_type = ] 'col_type'
Jenis kolom. @col_type adalah char(1), dengan default R
.
Jenis
R
mengembalikan kolom atau kumpulan kolom optimal yang, dengan mengambil nilai dari kolom atau kolom, memungkinkan baris apa pun dalam tabel yang ditentukan diidentifikasi secara unik. Kolom dapat berupa pseudocolumn yang dirancang untuk tujuan ini, atau kolom atau kolom indeks unik apa pun untuk tabel.Jenis
V
mengembalikan kolom atau kolom dalam tabel yang ditentukan, jika ada, yang secara otomatis diperbarui oleh sumber data ketika nilai apa pun dalam baris diperbarui oleh transaksi apa pun.
[ @scope = ] 'cakupan'
Cakupan minimum yang diperlukan ROWID. @scope adalah char(1), dengan default T
.
- Cakupan
C
menentukan bahwa ROWID hanya valid saat diposisikan pada baris tersebut. - Cakupan
T
menentukan bahwa ROWID valid untuk transaksi.
[ @nullable = ] 'nullable'
Menentukan apakah kolom khusus dapat menerima NULL
nilai. @nullable adalah char(1), dengan default U
.
O
menentukan kolom khusus yang tidak memperbolehkan nilai null.U
menentukan kolom yang sebagian nullable.
[ @ODBCVer = ] ODBCVer
Versi ODBC yang digunakan. @ODBCVer int, dengan default 2
. Nilai ini menunjukkan ODBC versi 2.0. Untuk informasi selengkapnya tentang perbedaan antara ODBC versi 2.0 dan ODBC versi 3.0, lihat spesifikasi ODBC SQLSpecialColumns
untuk ODBC versi 3.0.
Mengembalikan nilai kode
Tidak ada.
Tataan hasil
Nama kolom | Jenis data | Deskripsi |
---|---|---|
SCOPE |
smallint | Cakupan aktual ID baris. Bisa 0 , 1 , atau 2 . SQL Server selalu mengembalikan 0 . Bidang ini selalu mengembalikan nilai.0 = SQL_SCOPE_CURROW . ID baris dijamin hanya valid saat diposisikan pada baris tersebut. Pemilihan ulang nanti menggunakan ID baris mungkin tidak mengembalikan baris jika baris diperbarui atau dihapus oleh transaksi lain.1 = SQL_SCOPE_TRANSACTION . ID baris dijamin valid selama durasi transaksi saat ini.2 = SQL_SCOPE_SESSION . ID baris dijamin valid selama durasi sesi (di seluruh batas transaksi). |
COLUMN_NAME |
nama sysname | Nama kolom untuk setiap kolom @table_name dikembalikan. Bidang ini selalu mengembalikan nilai. |
DATA_TYPE |
smallint | Jenis data ODBC SQL. |
TYPE_NAME |
nama sysname | Nama jenis data yang bergantung pada sumber data; misalnya, karakter, varchar, uang, atau teks. |
PRECISION |
int | Presisi kolom pada sumber data. Bidang ini selalu mengembalikan nilai. |
LENGTH |
int | Panjang, dalam byte, diperlukan untuk jenis data dalam bentuk binernya di sumber data, misalnya, 10 untuk karakter(10), 4 untuk bilangan bulat, dan 2 untuk smallint. |
SCALE |
smallint | Skala kolom pada sumber data. NULL dikembalikan untuk jenis data yang skalanya tidak berlaku. |
PSEUDO_COLUMN |
smallint | Menunjukkan apakah kolom adalah pseudocolumn. SQL Server selalu mengembalikan 1 :0 = SQL_PC_UNKNOWN 1 = SQL_PC_NOT_PSEUDO 2 = SQL_PC_PSEUDO |
Keterangan
sp_special_columns
setara dengan SQLSpecialColumns
di ODBC. Hasil yang dikembalikan diurutkan oleh SCOPE
.
Izin
SELECT
Memerlukan izin pada skema.
Contoh
Contoh berikut mengembalikan informasi tentang kolom yang secara unik mengidentifikasi baris dalam HumanResources.Department
tabel.
USE AdventureWorks2022;
GO
EXEC sp_special_columns @table_name = 'Department',
@table_owner = 'HumanResources';