Bagikan melalui


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.

Konvensi sintaks transact-SQL

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 NULLadalah . 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';