The Microsoft® SQL Server™ ODBC driver uses the catalog stored procedure sp_special_columns to generate the result set for SQLSpecialColumns.
When requesting row identifiers (IdentifierType SQL_BEST_ROWID), SQLSpecialColumns returns an empty result set (no data rows) for any requested scope other than SQL_SCOPE_CURROW. The generated result set indicates that the columns are only valid within this scope.
SQL Server does not support pseudo columns for identifiers. The SQLSpecialColumns result set will identify all columns as SQL_PC_NOT_PSEUDO.
SQLSpecialColumns can be executed on a static cursor. An attempt to execute SQLSpecialColumns on an updatable (keyset-driven or dynamic) returns SQL_SUCCESS_WITH_INFO indicating the cursor type has been changed.