| title | SQLPrimaryKeys | Microsoft Docs | |
|---|---|---|
| ms.custom | ||
| ms.date | 03/14/2017 | |
| ms.prod | sql-server-2016 | |
| ms.reviewer | ||
| ms.suite | ||
| ms.technology |
|
|
| ms.tgt_pltfrm | ||
| ms.topic | reference | |
| apitype | DLLExport | |
| helpviewer_keywords |
|
|
| ms.assetid | bc61cd5b-d2f4-4f87-abc7-743cf9ea772d | |
| caps.latest.revision | 37 | |
| author | JennieHubbard | |
| ms.author | jhubbard | |
| manager | jhubbard |
[!INCLUDESNAC_Deprecated]
A table might have a column or columns that can serve as unique row identifiers, and tables created without a PRIMARY KEY constraint return an empty result set to SQLPrimaryKeys. The ODBC function SQLSpecialColumns reports row identifier candidates for tables without primary keys.
SQLPrimaryKeys returns SQL_SUCCESS whether or not values exist for CatalogName, SchemaName, or TableName parameters. SQLFetch returns SQL_NO_DATA when invalid values are used in these parameters.
SQLPrimaryKeys can be executed on a static server cursor. An attempt to execute SQLPrimaryKeys on an updatable (dynamic or keyset) cursor will return SQL_SUCCESS_WITH_INFO indicating that the cursor type has been changed.
The [!INCLUDEssNoVersion] Native Client ODBC driver supports reporting information for tables on linked servers by accepting a two-part name for the CatalogName parameter: Linked_Server_Name.Catalog_Name.
If the statement attribute SQL_SOPT_SS_NAME_SCOPE has the value SQL_SS_NAME_SCOPE_TABLE_TYPE, rather than its default value of SQL_SS_NAME_SCOPE_TABLE, SQLPrimaryKeys will return information about primary key columns of table types. For more information on SQL_SOPT_SS_NAME_SCOPE, see SQLSetStmtAttr.
For more information about table-valued parameters, see Table-Valued Parameters (ODBC).