Bagikan melalui


sp_pkeys (T-SQL)

Berlaku untuk: SQL Server Azure SQL Database Azure SQL Managed Instance Azure Synapse Analytics Analytics Platform System (PDW) Warehouse di Microsoft Fabric

Mengembalikan informasi kunci utama untuk satu tabel di lingkungan saat ini.

Konvensi sintaks transact-SQL

Sintaks

Sintaks untuk SQL Server, Azure SQL Database, Azure Synapse Analytics, Analytics Platform System (PDW).

sp_pkeys
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
[ ; ]

Argumen

[ @table_name = ] N'table_name'

Menentukan tabel yang akan mengembalikan informasi. @table_name adalah sysname, tanpa default. Pencocokan pola kartubebas tidak didukung.

[ @table_owner = ] N'table_owner'

Menentukan pemilik tabel dari tabel yang ditentukan. @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 dengan @table_name yang ditentukan, prosedur ini mencari tabel dengan @table_name yang ditentukan oleh pemilik database. Jika ada, kolom tabel tersebut dikembalikan.

[ @table_qualifier = ] N'table_qualifier'

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.

Mengembalikan nilai kode

Tidak ada.

Tataan hasil

Nama kolom Jenis data Deskripsi
TABLE_QUALIFIER nama sysname Nama kualifikasi tabel. Bidang ini bisa berupa NULL.
TABLE_OWNER nama sysname Nama pemilik tabel. Bidang ini selalu mengembalikan nilai.
TABLE_NAME nama sysname Nama tabel. Di SQL Server, kolom ini mewakili nama tabel seperti yang tercantum dalam tabel sysobjects. Bidang ini selalu mengembalikan nilai.
COLUMN_NAME nama sysname Nama kolom, untuk setiap kolom yang TABLE_NAME dikembalikan. Di SQL Server, kolom ini mewakili nama kolom seperti yang sys.columns tercantum dalam tabel. Bidang ini selalu mengembalikan nilai.
KEY_SEQ smallint Nomor urut kolom dalam kunci primer multikolom.
PK_NAME nama sysname Pengidentifikasi kunci utama. Mengembalikan NULL jika tidak berlaku untuk sumber data.

Keterangan

sp_pkeys mengembalikan informasi tentang kolom yang secara eksplisit ditentukan dengan PRIMARY KEY batasan. Karena tidak semua sistem mendukung kunci primer bernama secara eksplisit, pelaksana gateway menentukan apa yang merupakan kunci primer. Istilah kunci primer mengacu pada kunci primer logis untuk tabel. Setiap kunci yang tercantum sebagai kunci primer logis diharapkan memiliki indeks unik yang ditentukan di dalamnya. Indeks unik ini juga dikembalikan dalam sp_statistics.

Prosedur sp_pkeys tersimpan setara dengan SQLPrimaryKeys di ODBC. Hasil diurutkan berdasarkan TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, dan KEY_SEQ.

Izin

SELECT Memerlukan izin pada skema.

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 mengambil kunci primer untuk HumanResources.Department tabel dalam AdventureWorks2022 database.

USE AdventureWorks2022;
GO

EXEC sp_pkeys @table_name = N'Department',
    @table_owner = N'HumanResources';

Contoh: Azure Synapse Analytics and Analytics Platform System (PDW)

Contoh berikut mengambil kunci primer untuk DimAccount tabel dalam AdventureWorksPDW2012 database. Ini mengembalikan baris nol yang menunjukkan bahwa tabel tidak memiliki kunci primer.

-- Uses AdventureWorksPDW

EXEC sp_pkeys @table_name = N'DimAccount';