Udostępnij za pomocą


sp_pkeys (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Magazyn w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca podstawowe informacje klucza dla pojedynczej tabeli w bieżącym środowisku.

Transact-SQL konwencje składni

Składnia

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'

Określa tabelę, do której zwraca się informacja. @table_name to sysname, bez domyślnego ustawienia. Nie jest obsługiwane dopasowanie wzorców z dziką kartą.

[ @table_owner = ] N'table_owner'

Określa właściciela tabeli dla określonej tabeli. @table_owner to nazwa systemu, z domyślnym .NULL Nie jest obsługiwane dopasowanie wzorców z dziką kartą. Jeśli @table_owner nie jest określona, stosuje się domyślne reguły widoczności tabel w systemie zarządzania bazą danych (DBMS).

W SQL Server, jeśli aktualny użytkownik posiada tabelę o podanej nazwie, kolumny tej tabeli są zwracane. Jeśli @table_owner nie jest określona, a obecny użytkownik nie posiada tabeli o określonym @table_name, procedura ta szuka tabeli z określonymi @table_name należącymi do właściciela bazy danych. Jeśli taki istnieje, kolumny tej tabeli są zwracane.

[ @table_qualifier = ] N'table_qualifier'

Kwalifikator stołu. @table_qualifier to nazwa systemu, z domyślnym obciążeniem NULL. Różne produkty DBMS obsługują trzyczęściowe nazewnictwo tabel (<qualifier>.<owner>.<name>). W SQL Server ta kolumna oznacza nazwę bazy danych. W niektórych produktach reprezentuje nazwę serwera środowiska bazodanowego tabeli.

Zwracanie wartości kodu

Żaden.

Zestaw wyników

Nazwa kolumny Typ danych Description
TABLE_QUALIFIER sysname Nazwa kwalifikatora tabeli. To ciało może być .NULL
TABLE_OWNER sysname Imię właściciela stołu. To pole zawsze zwraca wartość.
TABLE_NAME sysname Nazwa tabeli. W SQL Server ta kolumna reprezentuje nazwę tabeli podaną w tabeli sysobjects. To pole zawsze zwraca wartość.
COLUMN_NAME sysname Nazwa kolumny, dla każdej kolumny zwróconej TABLE_NAME . W SQL Server ta kolumna reprezentuje nazwę kolumny podaną w tabeli sys.columns . To pole zawsze zwraca wartość.
KEY_SEQ smallint Numer sekwencyjny kolumny w wielokolumnowym kluczu podstawowym.
PK_NAME sysname Identyfikator klucza głównego. Zwroty NULL , jeśli nie dotyczą źródła danych.

Uwagi

sp_pkeys zwraca informacje o kolumnach wyraźnie zdefiniowanych z ograniczeniem PRIMARY KEY . Ponieważ nie wszystkie systemy obsługują jawnie nazwane klucze pierwotne, implementator bramy określa, co stanowi klucz główny. Termin klucz pierwotny odnosi się do logicznego klucza podstawowego dla tabeli. Każdy klucz wpisany jako logiczny klucz główny powinien mieć unikalny indeks zdefiniowany na sobie. Ten unikalny indeks jest również zwracany w sp_statistics.

Procedura sp_pkeys przechowywana jest równoważna z procedurą SQLPrimaryKeys w ODBC. Wyniki są uporządkowane przez TABLE_QUALIFIER, TABLE_OWNER, TABLE_NAME, oraz KEY_SEQ.

Permissions

Wymaga SELECT zgody na schemat.

Przykłady

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

Poniższy przykład pobiera klucz główny dla tabeli HumanResources.Department w bazie AdventureWorks2025 danych.

USE AdventureWorks2022;
GO

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

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład pobiera klucz główny dla tabeli DimAccount w bazie AdventureWorksPDW2012 danych. Zwraca zero wierszy, co oznacza, że tabela nie ma klucza głównego.

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