sp_columns (T-SQL)
Berlaku untuk: Titik akhir analitik SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Platform System (PDW) SQL di Microsoft Fabric Warehouse di Microsoft Fabric
Mengembalikan informasi kolom untuk objek yang ditentukan yang dapat dikueri di lingkungan saat ini.
Sintaks
sp_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Argumen
[ @table_name = ] N'table_name'
@table_name adalah nvarchar(384), tanpa default.
Nama objek yang digunakan untuk mengembalikan informasi katalog. @table_name bisa berupa tabel, tampilan, atau objek lain yang merupakan kolom seperti fungsi bernilai tabel. @table_name adalah nvarchar(384), tanpa default. Pencocokan pola kartubebas didukung.
[ @table_owner = ] N'table_owner'
Pemilik objek objek yang digunakan untuk mengembalikan informasi katalog. @table_owner adalah nvarchar(384), dengan default NULL
. Pencocokan pola kartubebas didukung. Jika @table_owner tidak ditentukan, aturan visibilitas objek default dari DBMS yang mendasar berlaku.
Jika pengguna saat ini memiliki objek dengan nama yang ditentukan, kolom objek tersebut akan dikembalikan. Jika @table_owner tidak ditentukan dan pengguna saat ini tidak memiliki objek dengan @table_name yang ditentukan, sp_columns
cari objek dengan @table_name yang ditentukan oleh pemilik database. Jika ada, kolom objek tersebut akan dikembalikan.
[ @table_qualifier = ] N'table_qualifier'
@table_qualifier adalah sysname, dengan default NULL
.
Nama pengkualifikasi objek. @table_qualifier adalah sysname, dengan default NULL
. Berbagai produk DBMS mendukung penamaan tiga bagian untuk objek (<qualifier>.<owner>.<name>
). Di SQL Server, kolom ini mewakili nama database. Dalam beberapa produk, ini mewakili nama server lingkungan database objek.
[ @column_name = ] N'column_name'
Satu kolom dan digunakan saat hanya satu kolom informasi katalog yang diinginkan. @column_name adalah nvarchar(384), dengan default NULL
. Jika @column_name tidak ditentukan, semua kolom dikembalikan. Di SQL Server, @column_name mewakili nama kolom seperti yang syscolumns
tercantum dalam tabel. Pencocokan pola kartubebas didukung. Untuk interoperabilitas maksimum, klien gateway harus mengasumsikan hanya pencocokan pola standar SQL-92 ( %
karakter wildcard dan _
).
[ @ODBCVer = ] ODBCVer
Versi ODBC yang sedang digunakan. @ODBCVer int, dengan default 2
. Ini menunjukkan ODBC Versi 2. Nilai yang valid adalah 2
atau 3
. Untuk perbedaan perilaku antara versi 2 dan 3, lihat spesifikasi ODBC SQLColumns
.
Mengembalikan nilai kode
Tidak ada.
Tataan hasil
Prosedur sp_columns
tersimpan katalog setara dengan SQLColumns
di ODBC. Hasil yang dikembalikan diurutkan oleh TABLE_QUALIFIER
, TABLE_OWNER
, dan TABLE_NAME
.
Nama kolom | Jenis data | Deskripsi |
---|---|---|
TABLE_QUALIFIER |
nama sysname | Nama kualifikasi objek. Bidang ini bisa berupa NULL . |
TABLE_OWNER |
nama sysname | Nama pemilik objek. Bidang ini selalu mengembalikan nilai. |
TABLE_NAME |
nama sysname | Nama objek. Bidang ini selalu mengembalikan nilai. |
COLUMN_NAME |
nama sysname | Nama kolom, untuk setiap kolom yang TABLE_NAME dikembalikan. Bidang ini selalu mengembalikan nilai. |
DATA_TYPE |
smallint | Kode bilangan bulat untuk jenis data ODBC. Jika jenis data ini tidak dapat dipetakan ke jenis ODBC, itu NULL adalah . Nama jenis data asli dikembalikan dalam TYPE_NAME kolom . |
TYPE_NAME |
nama sysname | String yang mewakili jenis data. DBMS yang mendasar menyajikan nama jenis data ini. |
PRECISION |
int | Jumlah digit signifikan. Nilai yang dikembalikan untuk PRECISION kolom berada di basis 10. |
LENGTH |
int | Ukuran transfer data. 1 |
SCALE |
smallint | Jumlah digit di sebelah kanan titik desimal. |
RADIX |
smallint | Dasar untuk jenis data numerik. |
NULLABLE |
smallint | Menentukan nullability.1 = NULL dimungkinkan.0 = BUKAN NULL . |
REMARKS |
varchar(254) | Bidang ini selalu mengembalikan NULL . |
COLUMN_DEF |
nvarchar(4000) | Nilai default kolom. |
SQL_DATA_TYPE |
smallint | Nilai jenis data SQL seperti yang muncul di bidang TYPE deskriptor. Kolom ini sama DATA_TYPE dengan kolom, kecuali untuk jenis data interval datetime dan SQL-92. Kolom ini selalu mengembalikan nilai. |
SQL_DATETIME_SUB |
smallint | Kode subjenis untuk jenis data interval datetime dan SQL-92. Untuk jenis data lainnya, kolom ini mengembalikan NULL . |
CHAR_OCTET_LENGTH |
int | Panjang maksimum dalam byte kolom tipe data karakter atau bilangan bulat. Untuk semua jenis data lainnya, kolom ini mengembalikan NULL . |
ORDINAL_POSITION |
int | Posisi ordinal kolom dalam objek. Kolom pertama dalam objek adalah 1. Kolom ini selalu mengembalikan nilai. |
IS_NULLABLE |
varchar(254) | Nullability kolom dalam objek. Aturan ISO diikuti untuk menentukan nullability. DBMS yang mematuhi ISO SQL tidak dapat mengembalikan string kosong.YES = Kolom dapat menyertakan NULL .NO = Kolom tidak dapat menyertakan NULL .Kolom ini mengembalikan string panjang nol jika nullability tidak diketahui. Nilai yang dikembalikan untuk kolom ini berbeda dari nilai yang dikembalikan untuk NULLABLE kolom. |
SS_DATA_TYPE |
kecil | Jenis data SQL Server yang digunakan oleh prosedur tersimpan yang diperluas. Untuk informasi selengkapnya, lihat Jenis Data. |
1 Untuk informasi selengkapnya, lihat Gambaran Umum ODBC.
Izin
SELECT
Memerlukan izin dan VIEW DEFINITION
pada skema.
Keterangan
sp_columns
mengikuti persyaratan untuk pengidentifikasi yang dibatasi. Untuk informasi selengkapnya, lihat Pengidentifikasi database.
Contoh
Sampel kode Transact-SQL dalam artikel ini menggunakan AdventureWorks2022
database sampel atau AdventureWorksDW2022
, yang dapat Anda unduh dari halaman beranda Sampel Microsoft SQL Server dan Proyek Komunitas.
Contoh berikut mengembalikan informasi kolom untuk tabel tertentu.
USE AdventureWorks2022;
GO
EXEC sp_columns
@table_name = N'Department',
@table_owner = N'HumanResources';
Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)
Contoh berikut mengembalikan informasi kolom untuk tabel tertentu.
USE AdventureWorksDW2022;
GO
EXEC sp_columns
@table_name = N'DimEmployee',
@table_owner = N'dbo';