テーブルには一意の行識別子として使用できる列があり、PRIMARY KEY 制約なしで作成されたテーブルは空の結果セットを SQLPrimaryKeys に返します。 ODBC 関数 SQLSpecialColumns は、主キーのないテーブルの行識別子候補を報告します。
SQLPrimaryKeys は、 CatalogName、 SchemaName、または TableName パラメーターに値が存在するかどうかをSQL_SUCCESS返します。 これらのパラメーターで無効な値が使用されている場合、SQLFetch はSQL_NO_DATAを返します。
SQLPrimaryKeys は、静的サーバー カーソルで実行できます。 更新可能 (動的またはキーセット) カーソルで SQLPrimaryKeys を実行しようとすると、カーソルの種類が変更されたことを示すSQL_SUCCESS_WITH_INFOが返されます。
SQL Server Native Client ODBC ドライバーは、 CatalogName パラメーターの 2 部構成の名前を受け入れることで、リンク サーバー上のテーブルのレポート情報をサポートしています: Linked_Server_Name.Catalog_Name。
SQLPrimaryKeys と Table-Valued パラメーター
ステートメント属性SQL_SOPT_SS_NAME_SCOPE SQL_SS_NAME_SCOPE_TABLEの既定値ではなく、SQL_SS_NAME_SCOPE_TABLE_TYPE値がある場合、SQLPrimaryKeys はテーブル型の主キー列に関する情報を返します。 SQL_SOPT_SS_NAME_SCOPEの詳細については、「 SQLSetStmtAttr」を参照してください。
テーブル値パラメーターの詳細については、「 Table-Valued Parameters (ODBC)」を参照してください。