Udostępnij za pośrednictwem


sp_fkeys (Transact-SQL)

Zwraca wartość logiczną klucz obcy informacje o bieżącym środowisku.Procedura ta pokazuje relacji kluczy obcych tym wyłączonych kluczy obcych.

Topic link iconKonwencje składni języka Transact-SQL

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'
    Is the name of the table, with the primary key, used to return catalog information.pktable_name is sysname, with a default of NULL.Symbol wieloznaczny pasujące do wzorca nie jest obsługiwana.Ten parametr lub fktable_name należy podać parametr lub obu.

  • [ @pktable_owner = ] 'pktable_owner'
    Jest nazwą właściciela tabela (z klucz podstawowy) używane do zwracania informacji wykazu. pktable_owner jest sysname, z domyślną wartość NULL. Symbol wieloznaczny pasujące do wzorca nie jest obsługiwana.Jeśli pktable_owner nie jest określony, zastosować zasady domyślne tabela widoczności dla odpowiedniego systemu DBMS.

    W SQL Server, jeżeli bieżący użytkownik jest właścicielem tabela o podanej nazwie, zwracane są kolumny tabela. Jeśli pktable_owner nie określono i bieżący użytkownik nie jest właścicielem tabela z określonym pktable_name, procedura szuka tabela o określonym pktable_name właścicielem właścicielem bazy danych. Jeśli taki istnieje, zwracane są kolumny tabela.

  • [ @pktable_qualifier = ] 'pktable_qualifier'
    Is the name of the table (with the primary key) qualifier.pktable_qualifier is sysname, with a default of 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 w środowisku bazy danych w tabela.

  • [ @fktable_name = ] 'fktable_name'
    Is the name of the table (with a foreign key) used to return catalog information.fktable_name is sysname, with a default of NULL.Symbol wieloznaczny pasujące do wzorca nie jest obsługiwana.Ten parametr lub pktable_name należy podać parametr lub obu.

  • [ @fktable_owner = ] 'fktable_owner'
    Is the name of the owner of the table (with a foreign key) used to return catalog information.fktable_owner is sysname, with a default of NULL.Symbol wieloznaczny pasujące do wzorca nie jest obsługiwana.Jeśli fktable_owner nie jest określony, zastosować zasady domyślne tabela widoczności dla odpowiedniego systemu DBMS.

    W SQL Server, jeżeli bieżący użytkownik jest właścicielem tabela o podanej nazwie, zwracane są kolumny tabela. Jeśli fktable_owner nie określono i bieżący użytkownik nie jest właścicielem tabela z określonym fktable_name, procedura szuka tabela o określonym fktable_name właścicielem właścicielem bazy danych. Jeśli taki istnieje, zwracane są kolumny tabela.

  • [ @fktable_qualifier =] 'fktable_qualifier'
    Is the name of the table (with a foreign key) qualifier.fktable_qualifier is sysname, with a default of NULL.W SQL Server, Kwalifikator reprezentuje nazwę bazy danych. W przypadku niektórych produktów reprezentuje nazwa serwera w środowisku bazy danych w tabela.

Wartości kodów powrotnych

None

Zestawy wyników

Nazwa kolumna

Typ danych

Description

PKTABLE_QUALIFIER

sysname

Nazwa kwalifikator tabela (z klucz podstawowy).To pole może mieć wartość NULL.

PKTABLE_OWNER

sysname

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

PKTABLE_NAME

sysname

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

PKCOLUMN_NAME

sysname

Nazwa kolumna klucz podstawowy dla każdej kolumna TABLE_NAME zwracane.To pole zawsze zwraca wartość.

FKTABLE_QUALIFIER

sysname

Nazwa kwalifikator tabela (z klucz obcy).To pole może mieć wartość 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 kolumna klucz obcy dla każdej kolumna TABLE_NAME zwracane.To pole zawsze zwraca wartość.

KEY_SEQ

smallint

Kolejny numer kolumna w oparciu o wiele kolumn klucz podstawowy.To pole zawsze zwraca wartość.

UPDATE_RULE

smallint

Action applied to the foreign key when the SQL operation is an update.SQL Server returns 0 or 1 for these columns:

0 = CASCADE zmiany klucz obcy.

1 = Zmiany akcja nie ma klucz obcy.

2=zestaw_NULL; zestaw wartości null jako klucz obcy.

DELETE_RULE

smallint

Action applied to the foreign key when the SQL operation is a deletion.SQL Server returns 0 or 1 for these columns:

0 = CASCADE zmiany klucz obcy.

1 = Zmiany akcja nie ma klucz obcy.

2=zestaw_NULL; zestaw wartości null jako klucz obcy.

FK_NAME

sysname

Identyfikator klucz obcy.It is NULL if not applicable to the data source.SQL Server returns the FOREIGN KEY constraint name.

PK_NAME

sysname

Identyfikator klucz podstawowy.It is NULL if not applicable to the data source.SQL Server returns the PRIMARY KEY constraint name.

Zwrócone wyniki są uporządkowane według FKTABLE_QUALIFIER, FKTABLE_OWNER, FKTABLE_NAME, and KEY_SEQ.

Remarks

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

  • Tymczasowe wyłączenie sprawdzania ograniczeń (NOCHECK instrukcji ALTER tabela lub CREATE tabela nie dla replikacja) podczas pracy z tabelami, a następnie włączając ponownie później.Aby uzyskać więcej informacji na temat opcji nie do replikacja Zobacz Kontrolowanie ograniczenia tożsamości i wyzwalaczy z nie dla replikacja.

  • Za pomocą wyzwalaczy lub kod aplikacji do wymuszania relacji.

Jeżeli podano nazwę tabela klucz podstawowy i nazwę tabela klucz obcy ma wartość NULL, sp_fkeys zwraca wszystkie tabele, które należą do danej tabela klucz obcy.Jeżeli podano nazwę tabela klucz obcy, a nazwa tabela klucz podstawowy jest NULL, sp_fkeys zwraca wszystkie tabele powiązane przez podstawowy klucz/relacji klucz obcy na klucze obce w tabela klucz obcy.

The sp_fkeys procedura przechowywana is equivalent to SQLForeignKeys in ODBC.

Uprawnienia

Wymaga uprawnienie SELECT do schematu.

Przykłady

Poniższy przykład pobiera listę kluczy obcych dla HumanResources.Department Tabela w AdventureWorks Baza danych.

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