Aracılığıyla paylaş


sp_pkeys (Transact-SQL)

Şunlar için geçerlidir:SQL ServerAzure SQL VeritabanıAzure SQL Yönetilen ÖrneğiAzure Synapse AnalyticsAnaliz Platformu Sistemi (PDW)Microsoft Fabric'te ambarMicrosoft Fabric'te SQL veritabanı

Mevcut ortamda tek bir tablo için birincil anahtar bilgisini döndürür.

Transact-SQL söz dizimi kuralları

Sözdizimi

Syntax for 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' ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

Bilgi iade edileceği tabloyu belirtir. @table_namesysname'dir, varsayılan yoktur. Wildcard desen eşleştirme desteklenmiyor.

[ @table_owner = ] N'table_owner'

Belirtilen tablonun tablo sahibini belirtir. @table_ownersysname'dir ve varsayılan olarak .NULL Wildcard desen eşleştirme desteklenmiyor. Eğer @table_owner belirtilmemişse, temel veritabanı yönetim sisteminin (DBMS) varsayılan tablo görünürlüğü kuralları uygulanır.

SQL Server'da, mevcut kullanıcı belirtilen isimle bir tabloya sahipse, o tablonun sütunları döner. Eğer @table_owner belirtilmemişse ve mevcut kullanıcı belirtilen @table_name içeren bir tabloya sahip değilse, bu prosedür veritabanı sahibine ait @table_name bir tablo arar. Eğer varsa, o tablonun sütunları geri döner.

[ @table_qualifier = ] N'table_qualifier'

Tablo elemesi. @table_qualifiersysname'dir ve varsayılan olarak .NULL Çeşitli DBMS ürünleri, tablolar için üç bölümlü adlandırmayı destekler (<qualifier>.<owner>.<name>). SQL Server'da bu sütun veritabanı adını temsil eder. Bazı ürünlerde, tablonun veritabanı ortamının sunucu adını temsil eder.

Dönüş kodu değerleri

Yok.

Sonuç kümesi

Sütun adı Veri türü Description
TABLE_QUALIFIER sysname Tablo nitelendirmesinin adı. Bu alan olabilir NULL.
TABLE_OWNER sysname Masa sahibinin adı. Bu alan her zaman bir değer döndürür.
TABLE_NAME sysname Tablonun adı. SQL Server'da bu sütun, sysobjects tablosunda listelenen tablo adını temsil eder. Bu alan her zaman bir değer döndürür.
COLUMN_NAME sysname Sütunun adı, her dönen sütun TABLE_NAME için. SQL Server'da bu sütun, tabloda listelenen sys.columns sütun adını temsil eder. Bu alan her zaman bir değer döndürür.
KEY_SEQ smallint Çok sütunlu birincil anahtardaki sütunun dizi numarası.
PK_NAME sysname Birincil anahtar tanımlayıcısı. Veri kaynağına uygulanmıyorsa dekler NULL .

Açıklamalar

sp_pkeys kısıtlama ile açıkça tanımlanmış PRIMARY KEY sütunlar hakkında bilgi döndürür. Tüm sistemler açıkça adlandırılmış birincil anahtarları desteklemediğinden, gateway uygulayıcısı birincil anahtarın neyin olduğunu belirler. Birincil anahtar terimi, bir tablo için mantıksal birincil anahtarı ifade eder. Mantıksal birincil anahtar olarak listelenen her anahtarın üzerinde tanımlanmış benzersiz bir indeks olması beklenmektedir. Bu benzersiz indeks de 'de döndürülür sp_statistics.

Saklanan prosedür sp_pkeys ODBC'deki ile SQLPrimaryKeys eşdeğerdir. Sonuçlar , , TABLE_QUALIFIER, ve TABLE_OWNERile sıralanırTABLE_NAME. KEY_SEQ

Permissions

Şema için izin gerekiyor SELECT .

Örnekler

Bu makaledeki kod örnekleri, AdventureWorks2025 giriş sayfasından indirebileceğiniz AdventureWorksDW2025 veya örnek veritabanını kullanır.

Aşağıdaki örnek, veritabanındaki tablonun HumanResources.DepartmentAdventureWorks2025 birincil anahtarını alır.

USE AdventureWorks2022;
GO

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

Örnekler: Azure Synapse Analytics ve Analytics Platform Sistemi (PDW)

Aşağıdaki örnek, veritabanındaki tablonun DimAccountAdventureWorksPDW2012 birincil anahtarını alır. Sıfır satır döner, bu da tablonun birincil anahtarı olmadığını gösterir.

-- Uses AdventureWorksPDW
EXECUTE sp_pkeys @table_name = N'DimAccount';