SQLForeignKeys uses the catalog stored procedure sp_fkeys to report foreign keys referencing a table's primary key or columns in a table that reference the primary key columns of other tables.
The following table shows the SQLForeignKeys parameter mapping for sp_fkeys stored procedure execution.
SQLForeignKeys parameter name | sp_fkeys parameter name |
---|---|
PKTableCatalog | pktable_qualifier |
PKTableSchema | pktable_owner |
PKTableName | pktable_name |
FKTableCatalog | fktable_qualifier |
FKTableSchema | fktable_owner |
FKTableName | fktable_name |
Microsoft® SQL Server™ supports cascading updates and deletes through the foreign key constraint mechanism. SQL Server returns SQL_CASCADE for UPDATE_RULE and/or DELETE_RULE columns if CASCADE option is specified on the ON UPDATE and/or ON DELETE clause of the FOREIGN KEY constraints. SQL Server returns SQL_NO_ACTION for UPDATE_RULE and/or DELETE_RULE columns if NO ACTION option is specified on the ON UPDATE and/or ON DELETE clause of the FOREIGN KEY constraints.
When invalid values are present in any SQLForeignKeys parameter, SQLForeignKeys returns SQL_SUCCESS on execution. SQLFetch returns SQL_NO_DATA when invalid values are used in these parameters.
SQLForeignKeys can be executed on a static server cursor. An attempt to execute SQLForeignKeys on an updatable (dynamic or keyset) cursor will return SQL_SUCCESS_WITH_INFO indicating that the cursor type has been changed.
The SQL Server ODBC driver supports reporting information for tables on linked servers by accepting a two-part name for the FKCatalogName and PKCatalogName parameters: Linked_Server_Name.Catalog_Name.