SQLColumnsSQLColumns

適用対象: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure Synapse Analytics (SQL DW) yesParallel Data Warehouse

Sqlcolumnsは、 CatalogNameTableName、またはColumnNameパラメーターの値が存在するかどうかを SQL_SUCCESS 返します。SQLColumns returns SQL_SUCCESS whether or not values exist for the CatalogName, TableName, or ColumnName parameters. これらのパラメーターで無効な値が使用されている場合、 Sqlfetchは SQL_NO_DATA を返します。SQLFetch returns SQL_NO_DATA when invalid values are used in these parameters.

注意

大きな値型の場合、すべての長さパラメーターが SQL_SS_LENGTH_UNLIMITED という値で返されます。For large value types, all length parameters will be returned with a value of SQL_SS_LENGTH_UNLIMITED.

Sqlcolumnsは、静的サーバーカーソルで実行できます。SQLColumns can be executed on a static server cursor. 更新可能なカーソル (動的カーソルまたはキーセットカーソル) でSqlcolumnsを実行しようとすると、カーソルの種類が変更されたことを示す SQL_SUCCESS_WITH_INFO が返されます。An attempt to execute SQLColumns on an updatable (dynamic or keyset) cursor will return SQL_SUCCESS_WITH_INFO indicating that the cursor type has been changed.

SQL ServerSQL Server Native Client ODBC ドライバーでは、 CatalogNameパラメーターの2部構成の名前を使用して、リンクサーバー上のテーブルの情報をレポートすることができます。 Linked_Server_Name Catalog_Nameです。The SQL ServerSQL Server 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.

ODBC 2 の場合。xアプリケーションでは、 tablenameでワイルドカードを使用していません。 sqlcolumnsは、名前がtablenameに一致し、現在のユーザーが所有しているテーブルに関する情報を返します。For ODBC 2.x applications not using wildcards in TableName, SQLColumns returns information about any tables whose names match TableName and are owned by the current user. 現在のユーザーがtablenameパラメーターと一致する名前を持つテーブルを所有していない場合、 sqlcolumnsは、テーブル名がtablenameパラメーターと一致する他のユーザーが所有しているテーブルに関する情報を返します。If the current user owns no table whose name matches the TableName parameter, SQLColumns returns information about any tables owned by other users where the table name matches the TableName parameter. ODBC 2 の場合。xアプリケーションワイルドカードを使用するsqlcolumnsは、名前がTableNameに一致するすべてのテーブルを返します。For ODBC 2.x applications using wildcards, SQLColumns returns all tables whose names match TableName. ODBC 3 の場合。x Applications sqlcolumnsは、所有者に関係なく名前がTableNameに一致するすべてのテーブル、またはワイルドカードを使用するかどうかを返します。For ODBC 3.x applications SQLColumns returns all tables whose names match TableName regardless of owner or whether wildcards are used.

次の表は、結果セットによって返される列の一覧です。The following table lists the columns returned by the result set:

列名Column name [説明]Description
DATA_TYPEDATA_TYPE VARCHAR (max) データ型の SQL_VARCHAR、SQL_VARBINARY、または SQL_WVARCHAR を返します。Returns SQL_VARCHAR, SQL_VARBINARY, or SQL_WVARCHAR for the varchar(max) data types.
TYPE_NAMETYPE_NAME Varchar (max)varbinary (max) 、およびnvarchar (max) データ型の "varchar"、"varbinary"、または "nvarchar" を返します。Returns "varchar", "varbinary", or "nvarchar" for the varchar(max), varbinary(max), and nvarchar(max) data types.
COLUMN_SIZECOLUMN_SIZE Varchar (max) データ型の場合、列のサイズが無制限であることを示す SQL_SS_LENGTH_UNLIMITED を返します。Returns SQL_SS_LENGTH_UNLIMITED for varchar(max) data types indicating that the size of the column is unlimited.
BUFFER_LENGTHBUFFER_LENGTH Varchar (max) データ型の場合、バッファーのサイズが無制限であることを示す SQL_SS_LENGTH_UNLIMITED を返します。Returns SQL_SS_LENGTH_UNLIMITED for varchar(max) data types indicating that the size of the buffer is unlimited.
SQL_DATA_TYPESQL_DATA_TYPE VARCHAR (max) データ型の SQL_VARCHAR、SQL_VARBINARY、または SQL_WVARCHAR を返します。Returns SQL_VARCHAR, SQL_VARBINARY, or SQL_WVARCHAR for the varchar(max) data types.
CHAR_OCTET_LENGTHCHAR_OCTET_LENGTH char 型または binary 型の列の最大長を返します。Returns the maximum length of a char or binary column. サイズが無制限であることを示す場合は 0 を返します。Returns 0 to indicate that the size is unlimited.
SS_XML_SCHEMACOLLECTION_CATALOG_NAMESS_XML_SCHEMACOLLECTION_CATALOG_NAME XML スキーマ コレクション名が定義されているカタログの名前を返します。Returns the name of the catalog where an XML schema collection name is defined. カタログ名が見つからない場合は、この変数に空文字列が含まれます。If the catalog name cannot be found, then this variable contains an empty string.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAMESS_XML_SCHEMACOLLECTION_SCHEMA_NAME XML スキーマ コレクション名が定義されているスキーマの名前を返します。Returns the name of the schema where an XML schema collection name is defined. スキーマ名が見つからない場合は、この変数に空文字列が含まれます。If the schema name cannot be found, then this variable contains an empty string.
SS_XML_SCHEMACOLLECTION_NAMESS_XML_SCHEMACOLLECTION_NAME XML スキーマ コレクションの名前を返します。Returns the name of an XML schema collection. 名前が見つからない場合は、この変数に空文字列が含まれます。If the name cannot be found, then this variable contains an empty string.
SS_UDT_CATALOG_NAMESS_UDT_CATALOG_NAME UDT (ユーザー定義型) を含むカタログの名前です。The name of the catalog containing the UDT (user-defined type).
SS_UDT_SCHEMA_NAMESS_UDT_SCHEMA_NAME UDT を含むスキーマの名前。The name of the schema containing the UDT.
SS_UDT_ASSEMBLY_TYPE_NAMESS_UDT_ASSEMBLY_TYPE_NAME UDT のアセンブリ修飾名です。The assembly-qualified name of the UDT.

Udt の場合は、UDT の名前を示すために、既存の TYPE_NAME 列が使用されます。そのため、 SqlcolumnsまたはSQLProcedureColumnsの結果セットに列を追加することはできません。For UDTs, the existing TYPE_NAME column is used to indicate the name of the UDT; therefore no additional column for it should be added to the result set of SQLColumns or SQLProcedureColumns. UDT 列または UDT パラメーターの場合、DATA_TYPE は SQL_SS_UDT です。The DATA_TYPE for a UDT column or parameter is SQL_SS_UDT.

サーバーからパラメーターの UDT に関する追加のメタデータ プロパティを返したり、サーバーでこのメタデータ プロパティの情報が必要となる場合は、上記に定義したドライバー固有の新しい記述子を使用して、UDT のメタデータ プロパティの取得や設定を行えます。For the UDT of parameters, you can use the new driver-specific descriptors defined above to get or set the extra metadata properties of a UDT, should the server return or require this information.

クライアントが SQL ServerSQL Server に接続して SQLColumns を呼び出すと、カタログ入力パラメーターに NULL またはワイルドカード値を使用しても、他のカタログからの情報は返されません。When a client connects to SQL ServerSQL Server and calls SQLColumns, using NULL or wild card values for the catalog input parameter will not return information from other catalogs. 代わりに、現在のカタログに関する情報だけが返されます。Instead, only information about the current catalog will be returned. クライアントはまず SQLTables を呼び出して、目的のテーブルがあるカタログを特定できます。The client can first call SQLTables to determine in which catalog the desired table is located. その後、クライアントは、そのカタログ値を SQLColumns の呼び出しでカタログ入力パラメーターに使用して、そのテーブル内の列に関する情報を取得できます。The client can then use that catalog value for the catalog input parameter in its call to SQLColumns to retrieve information about the columns in that table.

SQLColumns とテーブル値パラメーターSQLColumns and Table-Valued Parameters

SQLColumns によって返される結果セットは、SQL_SOPT_SS_NAME_SCOPE の設定によって異なります。The result set returned by SQLColumns depends on the setting of SQL_SOPT_SS_NAME_SCOPE. 詳細については、「 SQLSetStmtAttr」を参照してください。For more information, see SQLSetStmtAttr. テーブル値パラメーター用に次の列が追加されました。The following columns have been added for table-valued parameters:

列名Column name データ型Data type 目次Contents
SS_IS_COMPUTEDSS_IS_COMPUTED SmallintSmallint TABLE_TYPE の列では、列が計算列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。For a column in a TABLE_TYPE, this is SQL_TRUE if the column is a computed column; otherwise, SQL_FALSE.
SS_IS_IDENTITYSS_IS_IDENTITY SmallintSmallint 列が ID 列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。SQL_TRUE if the column is an identity column; otherwise, SQL_FALSE.

テーブル値パラメーターの詳細については、「テーブル値パラメーター (の)ODBC」を参照してください。For more information about table-valued parameters, see Table-Valued Parameters (ODBC).

SQLColumns による機能強化された日付と時刻のサポートSQLColumns Support for Enhanced Date and Time Features

日付型または時刻型に対して返される値の詳細については、「カタログメタデータ」を参照してください。For information about the values returned for date/time types, see Catalog Metadata.

詳細については、「日付と(時刻)の機能強化 ODBC」を参照してください。For more information, see Date and Time Improvements (ODBC).

SQLColumns による大きな CLR UDT のサポートSQLColumns Support for Large CLR UDTs

Sqlcolumnsは、大きな CLR ユーザー定義型 (udt) をサポートしています。SQLColumns supports large CLR user-defined types (UDTs). 詳細については、「 LARGE CLR ユーザー定義(型)ODBC」を参照してください。For more information, see Large CLR User-Defined Types (ODBC).

SQLColumns によるスパース列のサポートSQLColumns Support for Sparse Columns

SQLColumns の結果セットには、次の2つの SQL ServerSQL Server 固有の列が追加されています。Two SQL ServerSQL Server specific columns have been added to the result set for SQLColumns:

列名Column name データ型Data type [説明]Description
SS_IS_SPARSESS_IS_SPARSE SmallintSmallint 列がスパース列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。If the column is a sparse column, this is SQL_TRUE; otherwise, SQL_FALSE.
SS_IS_COLUMN_SETSS_IS_COLUMN_SET SmallintSmallint 列がcolumn_set列の場合、これは SQL_TRUE です。それ以外の場合は、SQL_FALSE ます。If the column is the column_set column, this is SQL_TRUE; otherwise, SQL_FALSE.

ODBC 仕様に準拠して、SS_IS_SPARSE と SS_IS_COLUMN_SET は、SQL Server 2008SQL Server 2008よりも前のバージョン SQL ServerSQL Server に追加されたドライバー固有のすべての列の前、および ODBC 自体によって指定されたすべての列の前に表示されます。In conformance with the ODBC specification, SS_IS_SPARSE and SS_IS_COLUMN_SET appear before all driver-specific columns that were added to SQL ServerSQL Server versions earlier than SQL Server 2008SQL Server 2008, and after all columns mandated by ODBC itself.

SQLColumns によって返される結果セットは、SQL_SOPT_SS_NAME_SCOPE の設定によって異なります。The result set returned by SQLColumns depends on the setting of SQL_SOPT_SS_NAME_SCOPE. 詳細については、「 SQLSetStmtAttr」を参照してください。For more information, see SQLSetStmtAttr.

ODBC でのスパース列の詳細については、「スパース列のサポート(odbc)」を参照してください。For more information about sparse columns in ODBC, see Sparse Columns Support (ODBC).

参照See Also

Sqlcolumns 関数 SQLColumns Function
ODBC API 実装の詳細ODBC API Implementation Details