sp_foreignkeys (Transact-SQL)

Gäller för:SQL Server

Returnerar främmande nycklar som refererar till primärnycklar i tabellen på den länkade servern.

Transact-SQL syntaxkonventioner

Syntax

sp_foreignkeys
    [ @table_server = ] N'table_server'
    [ , [ @pktab_name = ] N'pktab_name' ]
    [ , [ @pktab_schema = ] N'pktab_schema' ]
    [ , [ @pktab_catalog = ] N'pktab_catalog' ]
    [ , [ @fktab_name = ] N'fktab_name' ]
    [ , [ @fktab_schema = ] N'fktab_schema' ]
    [ , [ @fktab_catalog = ] N'fktab_catalog' ]
[ ; ]

Arguments

[ @table_server = ] N'table_server'

Namnet på den länkade servern för vilken tabellinformation ska returneras. @table_server är sysname, utan standard.

[ @pktab_name = ] N'pktab_name'

Namnet på tabellen med en primärnyckel. @pktab_name är sysname, med standardvärdet .NULL

[ @pktab_schema = ] N'pktab_schema'

Namnet på schemat med en primärnyckel. @pktab_schema är sysname, med standardvärdet .NULL I SQL Server innehåller denna parameter ägarnamnet.

[ @pktab_catalog = ] N'pktab_catalog'

Namnet på katalogen med en primärnyckel. @pktab_catalog är sysname, med standardvärdet .NULL I SQL Server innehåller denna parameter databasens namn.

[ @fktab_name = ] N'fktab_name'

Namnet på bordet med en främmande nyckel. @fktab_name är sysname, med standardvärdet .NULL

[ @fktab_schema = ] N'fktab_schema'

Namnet på schemat med en främmande nyckel. @fktab_schema är sysname, med standardvärdet .NULL

[ @fktab_catalog = ] N'fktab_catalog'

Namnet på katalogen med främmande nyckel. @fktab_catalog är sysname, med standardvärdet .NULL

Returnera kodvärden

Ingen.

Resultatuppsättning

Olika databashanteringssystem (DBMS)-produkter stödjer tredelad namngivning för tabeller (<catalog>.<schema>.<table>), vilket representeras i resultatuppsättningen.

Kolumnnamn Datatyp Description
PKTABLE_CAT sysname Katalogisera tabellen där primärnyckeln finns.
PKTABLE_SCHEM sysname Schema för tabellen där primärnyckeln finns.
PKTABLE_NAME sysname Namnet på tabellen (med primärnyckeln). Detta fält returnerar alltid ett värde.
PKCOLUMN_NAME sysname Namnet på primärnyckelkolumnen eller kolumnerna, för varje kolumn i den TABLE_NAME returnerade. Detta fält returnerar alltid ett värde.
FKTABLE_CAT sysname Katalogisera tabellen där främmande nyckeln finns.
FKTABLE_SCHEM sysname Schema för tabellen där främmande nyckeln finns.
FKTABLE_NAME sysname Namnet på tabellen (med främmande nyckel). Detta fält returnerar alltid ett värde.
FKCOLUMN_NAME sysname Namn på främmande nyckelkolumner, för varje kolumn i den TABLE_NAME returnerade. Detta fält returnerar alltid ett värde.
KEY_SEQ smallint Sekvensnummer för kolumnen i en primärnyckel med flera kolumner. Detta fält returnerar alltid ett värde.
UPDATE_RULE smallint Åtgärden som tillämpas på främmande nyckeln när SQL-operationen är en uppdatering. SQL Server returnerar 0, 1 eller 2 för dessa kolumner:

0 = CASCADE Byter till främmande nyckel.
1 = NO ACTION ändras om främmande nyckel finns.
2 = SET_NULL; Sätt främmande nyckel till NULL.
DELETE_RULE smallint Åtgärden som tillämpas på främmande nyckeln när SQL-operationen är en borttagning. SQL Server returnerar 0, 1 eller 2 för dessa kolumner:

0 = CASCADE Byter till främmande nyckel.
1 = NO ACTION ändras om främmande nyckel finns.
2 = SET_NULL; Sätt främmande nyckel till NULL.
FK_NAME sysname Främmande nyckelidentifierare. Det är NULL det om det inte gäller datakällan. SQL Server returnerar begränsningsnamnet FOREIGN KEY .
PK_NAME sysname Primärnyckelidentifierare. Det är NULL det om det inte gäller datakällan. SQL Server returnerar begränsningsnamnet PRIMARY KEY .
DEFERRABILITY smallint Indikerar om begränsningskontroll är uppskjutbar.

I resultatmängden returnerar och kolumnerna FK_NAMEPK_NAME alltid .NULL

Anmärkningar

sp_foreignkeys frågar den FOREIGN_KEYS raduppsättningen IDBSchemaRowset i gränssnittet till OLE DB-leverantören som motsvarar @table_server. Parametrarna @table_name, @table_schema, @table_catalog och @column skickas till detta gränssnitt för att begränsa raderna som returneras.

Permissions

Kräver SELECT tillstånd på schemat.

Examples

Följande exempel returnerar främmande nyckelinformation om Department tabellen i databasen AdventureWorks2025 på den länkade servern, Seattle1.

EXECUTE sp_foreignkeys
    @table_server = N'Seattle1',
    @pktab_name = N'Department',
    @pktab_catalog = N'AdventureWorks2022';