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