Bagikan melalui


sp_pkeys (T-SQL)

Berlaku untuk:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse Analytics AnalyticsPlatform System (PDW)Warehouse di Microsoft Fabric

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

Konvensi sintaks transact-SQL

Sintaks

-- Syntax for SQL Server, Azure SQL Database, Azure Synapse Analytics, Parallel Data Warehouse  
  
sp_pkeys [ @table_name = ] 'name'       
    [ , [ @table_owner = ] 'owner' ]   
    [ , [ @table_qualifier = ] 'qualifier' ]  

Argumen

[ @table_name= ] 'nama'
Adalah tabel untuk mengembalikan informasi. nama adalah sysname, tanpa default. Pencocokan pola kartubebas tidak didukung.

[ @table_owner= ] 'pemilik'
Menentukan pemilik tabel dari tabel yang ditentukan. pemilik adalah sysname, dengan default NULL. Pencocokan pola kartubebas tidak didukung. Jika pemilik tidak ditentukan, aturan visibilitas tabel default dari DBMS yang mendasar berlaku.

Di SQL Server, jika pengguna saat ini memiliki tabel dengan nama yang ditentukan, kolom tabel tersebut dikembalikan. Jika pemilik tidak ditentukan dan pengguna saat ini tidak memiliki tabel dengan nama yang ditentukan, prosedur ini mencari tabel dengan nama yang ditentukan yang dimiliki oleh pemilik database. Jika ada, kolom tabel tersebut dikembalikan.

[ @table_qualifier= ] 'kualifikasi'
Apakah kualifikasi tabel. qualifier adalah sysname, dengan default NULL. Berbagai produk DBMS mendukung penamaan tiga bagian untuk tabel (kualifikasi.pemilik.nama). Di SQL Server, kolom ini mewakili nama database. Dalam beberapa produk, ini mewakili nama server lingkungan database tabel.

Mengembalikan Nilai Kode

Tidak

Tataan Hasil

Nama kolom Jenis data Deskripsi
TABLE_QUALIFIER nama sysname Nama kualifikasi tabel. Bidang ini bisa 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 TABLE_NAME dikembalikan. Di SQL Server, kolom ini mewakili nama kolom seperti yang tercantum dalam tabel sys.columns. 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 batasan KUNCI PRIMER. Karena tidak semua sistem mendukung kunci primer bernama secara eksplisit, pelaksana gateway menentukan apa yang merupakan kunci primer. Perhatikan bahwa istilah kunci primer mengacu pada kunci primer logis untuk tabel. Diharapkan bahwa setiap kunci yang tercantum sebagai kunci primer logis memiliki indeks unik yang ditentukan di dalamnya. Indeks unik ini juga dikembalikan dalam sp_statistics.

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

Izin

Memerlukan izin SELECT pada skema.

Contoh

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

Lihat Juga

Prosedur Tersimpan Katalog (Transact-SQL)
Prosedur Tersimpan Sistem (Transact-SQL)