sp_fkeys (języka Transact-SQL)

Zwraca informacje o logicznej klucz obcy dla bieżącego środowiska.W tej procedurze pokazano relacje klucz obcy , tym wyłączonych kluczy obcych.

Ikona łącza do tematuJęzyka Transact-SQL składni konwencje

Składnia

sp_fkeys [ @pktable_name = ] 'pktable_name' 
     [ , [ @pktable_owner = ] 'pktable_owner' ] 
     [ , [ @pktable_qualifier = ] 'pktable_qualifier' ] 
     { , [ @fktable_name = ] 'fktable_name' } 
     [ , [ @fktable_owner = ] 'fktable_owner' ] 
     [ , [ @fktable_qualifier = ] 'fktable_qualifier' ]

Argumenty

  • [ @pktable_name=\] 'pktable_name'
    Jest nazwą tabela, podstawowy kluczużywany do zwracania informacji wykazu.pktable_namejest sysname, domyślna wartość NULL.Dopasowanie do wzorca symbolu wieloznacznego nie jest obsługiwane.Ten parametr lub fktable_name parametru lub oba, muszą zostać dostarczone.

  • [ @pktable_owner=\] 'pktable_owner'
    Jest nazwą właściciela tabela (podstawowy klucz) używane do zwracania informacji o katalogu. pktable_owner jest sysname, domyślna wartość NULL.Dopasowanie do wzorca symbolu wieloznacznego nie jest obsługiwane.Jeśli pktable_owner nie jest określony, stosuje się zasady domyślne tabela widoczność odpowiedniego DBMS .

    W SQL Server, jeśli bieżący użytkownik jest właścicielem tabela o podanej nazwie zwróconą kolumn tabela.Jeśli pktable_owner nie jest określony i bieżący użytkownik nie jest właścicielem tabela o określonym pktable_name, procedura szuka tabela o określonym pktable_name własnością właściciela bazy danych.Jeśli taka istnieje tabelakolumny są zwracane.

  • [ @pktable_qualifier =] 'pktable_qualifier'
    Jest to nazwa tabela (podstawowy klucz) kwalifikator.pktable_qualifierjest sysname, domyślna wartość NULL.Różne produkty DBMS obsługuje trzy części nazw tabel (qualifier.owner.name).W SQL Server, kwalifikator reprezentuje nazwę bazy danych.W przypadku niektórych produktów reprezentuje nazwa serwera środowisku tabelabazy danych.

  • [ @fktable_name=\] 'fktable_name'
    Jest to nazwa tabela (z klucz obcy) używane do zwracania informacji o katalogu.fktable_namejest sysname, domyślna wartość NULL.Dopasowanie do wzorca symbolu wieloznacznego nie jest obsługiwane.Ten parametr lub pktable_name parametru lub oba, muszą zostać dostarczone.

  • [ @fktable_owner =] 'fktable_owner'
    Jest nazwą właściciela tabela (z klucz obcy) używane do zwracania informacji o katalogu.fktable_ownerjest sysname, domyślna wartość NULL.Dopasowanie do wzorca symbolu wieloznacznego nie jest obsługiwane.Jeśli fktable_owner nie jest określony, stosuje się zasady domyślne tabela widoczność odpowiedniego DBMS .

    W SQL Server, jeśli bieżący użytkownik jest właścicielem tabela o podanej nazwie zwróconą kolumn tabela.Jeśli fktable_owner nie jest określony i bieżący użytkownik nie jest właścicielem tabela o określonym fktable_name, procedura szuka tabela o określonym fktable_name własnością właściciela bazy danych.Jeśli taka istnieje tabelakolumny są zwracane.

  • [ @fktable_qualifier= ] 'fktable_qualifier'
    Jest to nazwa tabela (z klucz obcy) kwalifikator.fktable_qualifierjest sysname, domyślna wartość NULL.W SQL Server, kwalifikator reprezentuje nazwę bazy danych.W przypadku niektórych produktów reprezentuje nazwa serwera środowisku tabelabazy danych.

Wartości kodów powrotnych

Brak

Zestawy wyników

Nazwa kolumny

Typ danych

Opis

PKTABLE_QUALIFIER

sysname

Nazwa tabela (podstawowy klucz) kwalifikator.To pole może być NULL.

PKTABLE_OWNER

sysname

Nazwa właściciela tabela (z podstawowego klucz).To pole zawsze zwraca wartość.

PKTABLE_NAME

sysname

Nazwa tabela (z podstawowego klucz).To pole zawsze zwraca wartość.

PKCOLUMN_NAME

sysname

Nazwa kolumny klucz podstawowego dla każdej kolumna TABLE_NAME zwrócił.To pole zawsze zwraca wartość.

FKTABLE_QUALIFIER

sysname

Nazwa tabela (z klucz obcy) kwalifikator.To pole może być NULL.

FKTABLE_OWNER

sysname

Nazwa właściciela tabela (z klucz obcy).To pole zawsze zwraca wartość.

FKTABLE_NAME

sysname

Nazwa tabela (z klucz obcy).To pole zawsze zwraca wartość.

FKCOLUMN_NAME

sysname

Nazwa klucz obcy kolumnadla każdej kolumna TABLE_NAME zwrócił.To pole zawsze zwraca wartość.

KEY_SEQ

smallint

Kolejny numer kolumna w wielokolumnowym kluczpodstawowego.To pole zawsze zwraca wartość.

UPDATE_RULE

smallint

Akcja stosowane do klucz obcy , gdy operacja SQL jest aktualizacja.SQL ServerZwraca wartość 0 lub 1 dla tych kolumn:

0 = Zmiany kaskadowe klucz obcy.

1 = Zmienia żadnej akcji, jeśli ma klucz obcy .

DELETE_RULE

smallint

Akcja stosowane do klucz obcy , gdy operacja SQL jest usunięcie.SQL ServerZwraca wartość 0 lub 1 dla tych kolumn:

0 = Zmiany kaskadowe klucz obcy.

1 = Zmienia żadnej akcji, jeśli ma klucz obcy .

FK_NAME

sysname

Identyfikator klucz obcego.Jeśli nie ma zastosowania do danych źródło, jest NULL.SQL ServerZwraca nazwę ograniczenie klucza OBCEGO.

PK_NAME

sysname

Identyfikator klucz podstawowego.Jeśli nie ma zastosowania do danych źródło, jest NULL.SQL ServerZwraca nazwę ograniczenie klucza podstawowego.

wyniki zwracane są uporządkowane wedługFKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, i KEY_SEQ.

Uwagi

Aplikacja kodowania, który zawiera tabele z wyłączono opcję kluczy obcych może być implementowana przez następujące czynności:

  • Tymczasowe wyłączanie sprawdzania ograniczeń (NOCHECK tabeli ZMIENIA lub nie tabeli dla replikacji) podczas pracy z tabelami i włączanie ponownie później.Aby uzyskać więcej informacji na temat opcji nie dla replikacji, zobacz Kontrolowanie ograniczenia, tożsamości i wyzwalaczy z nie dla replikacji.

  • Aby wymusić relacji przy użyciu wyzwalaczy lub kod aplikacji.

Jeśli podano nazwętabela kluczpodstawowego i nazwętabela klucz obcyjest NULL, sp_fkeys zwraca wszystkie tabele klucz obcy do danej tabela. Jeśli podano nazwętabela klucz obcyi nazwętabela kluczpodstawowego ma wartość NULL, sp_fkeys zwraca wszystkie tabele powiązane przez podstawowy klucz/klucz obcy relacji kluczy obcych w klucz obcytabela.

sp_fkeys procedura składowana jest równoważne z SQLForeignKeys w ODBC.

Uprawnienia

Wymaga uprawnienie SELECT schematu.

Przykłady

Poniższy przykład pobiera listę kluczy obcych w HumanResources.Department tabela w AdventureWorks2008R2 bazy danych.

USE AdventureWorks2008R2;
GO
EXEC sp_fkeys @pktable_name = N'Department'
    ,@pktable_owner = N'HumanResources';