SQLColumns

適用対象:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLColumns は、CatalogName、TableName、または ColumnName パラメーターの値が存在するかどうかをSQL_SUCCESS返します。 これらのパラメーターで無効な値が使用されている場合、SQLFetch はSQL_NO_DATAを返します。

Note

大きな値型の場合、すべての長さパラメーターが SQL_SS_LENGTH_UNLIMITED という値で返されます。

SQLColumns は、静的サーバー カーソルで実行できます。 更新可能 (動的またはキーセット) カーソルで SQLColumns を実行しようとすると、カーソルの種類が変更されたことを示すSQL_SUCCESS_WITH_INFOが返されます。

SQL Server Native Client ODBC ドライバーは、CatalogName パラメーターの 2 部構成の名前を受け入れることで、リンク サーバー上のテーブルのレポート情報をサポートしています: Linked_Server_Name.Catalog_Name

ODBC 2 の場合。x アプリケーションが TableName で wildカードs を使用していない場合、SQLColumns は、名前が TableName と一致し、現在のユーザーが所有するすべてのテーブルに関する情報を返します。 現在のユーザーが TableName パラメーターと一致する名前のテーブルを所有していない場合、SQLColumns は、テーブル名が TableName パラメーターと一致する他のユーザーが所有するすべてのテーブルに関する情報を返します。 ODBC 2 の場合。ワイルドカードを使用する x アプリケーションでは、SQLColumns は、名前が TableName と一致するすべてのテーブルを返します。 ODBC 3 の場合。x アプリケーション SQLColumns は、所有者に関係なく、またはワイルドカードが使用されているかどうかに関係なく、名前が TableName と一致するすべてのテーブルを返します。

次の表は、結果セットによって返される列の一覧です。

列名 説明
DATA_TYPE varchar(max) データ型のSQL_VARCHAR、SQL_VARBINARY、またはSQL_WVARCHARを返します。
TYPE_NAME varchar(max)、varbinary(max)、および nvarchar(max) データ型の "varchar"、"varbinary"、または "nvarchar" を返します。
COLUMN_SIZE 列のサイズが 無制限であることを示す varchar(max) データ型のSQL_SS_LENGTH_UNLIMITEDを返します。
BUFFER_LENGTH バッファーのサイズが 無制限であることを示す varchar(max) データ型のSQL_SS_LENGTH_UNLIMITEDを返します。
SQL_DATA_TYPE varchar(max) データ型のSQL_VARCHAR、SQL_VARBINARY、またはSQL_WVARCHARを返します。
CHAR_OCTET_LENGTH char 型または binary 型の列の最大長を返します。 サイズが無制限であることを示す場合は 0 を返します。
SS_XML_SCHEMACOLLECTION_CATALOG_NAME XML スキーマ コレクション名が定義されているカタログの名前を返します。 カタログ名が見つからない場合は、この変数に空文字列が含まれます。
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME XML スキーマ コレクション名が定義されているスキーマの名前を返します。 スキーマ名が見つからない場合は、この変数に空文字列が含まれます。
SS_XML_SCHEMACOLLECTION_NAME XML スキーマ コレクションの名前を返します。 名前が見つからない場合は、この変数に空文字列が含まれます。
SS_UDT_CATALOG_NAME UDT (ユーザー定義型) を含むカタログの名前です。
SS_UDT_SCHEMA_NAME UDT を含むスキーマの名前。
SS_UDT_ASSEMBLY_TYPE_NAME UDT のアセンブリ修飾名です。

UDT の場合、既存の TYPE_NAME 列は UDT の名前を示すために使用されます。そのため、SQLColumns または SQLProcedureColumns結果セットに列を追加する必要はありません。 UDT 列または UDT パラメーターの場合、DATA_TYPE は SQL_SS_UDT です。

サーバーからパラメーターの UDT に関する追加のメタデータ プロパティを返したり、サーバーでこのメタデータ プロパティの情報が必要となる場合は、上記に定義したドライバー固有の新しい記述子を使用して、UDT のメタデータ プロパティの取得や設定を行えます。

クライアントが SQL Server に接続して SQLColumns を呼び出す場合、カタログ入力パラメーターに NULL 値またはワイルド カード値を使用しても、他のカタログからの情報は返されません。 代わりに、現在のカタログに関する情報だけが返されます。 クライアントは、最初に SQLTable を呼び出して、目的のテーブルが配置されているカタログを決定できます。 クライアントは、SQLColumns の呼び出しでカタログ入力パラメーターのカタログ値を使用して、そのテーブル内の列に関する情報を取得できます。

SQLColumns とテーブル値パラメーター

SQLColumns によって返される結果セットは、SQL_SOPT_SS_NAME_SCOPEの設定によって異なります。 詳細については、「SQLSetStmtAttr」を参照してください。 テーブル値パラメーター用に次の列が追加されました。

列名 データ型 内容
SS_IS_COMPUTED Smallint TABLE_TYPE の列では、列が計算列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。
SS_IS_IDENTITY Smallint 列が ID 列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。

テーブル値パラメーターの詳細については、「テーブル値パラメーター (ODBC)」を参照してください

SQLColumns による機能強化された日付と時刻のサポート

日付/時刻型に対して返される値の詳細については、「カタログ メタデータ」を参照してください

詳細については、「日付と時刻の機能強化 (ODBC)」を参照してください

SQLColumns による大きな CLR UDT のサポート

SQLColumns では 、大きな CLR ユーザー定義型 (UDT) がサポートされています。 詳細については、「大きな CLR ユーザー定義型 (ODBC)」を参照してください

SQLColumns によるスパース列のサポート

SQLColumns の結果セットに 2 つの SQL Server 固有の列が追加されました。

列名 データ型 説明
SS_IS_SPARSE Smallint 列がスパース列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。
SS_IS_COLUMN_SET Smallint 列がcolumn_set列の場合はSQL_TRUE。それ以外の場合はSQL_FALStandard Edition。

ODBC 仕様に準拠して、SS_IS_SPARStandard Editionと SS_IS_COLUMN_Standard Edition T は、SQL Server 2008 (10.0.x) より前のバージョンの SQL Server に追加されたすべてのドライバー固有の列の前、および ODBC 自体で義務付けられているすべての列の後に表示されます。

SQLColumns によって返される結果セットは、SQL_SOPT_SS_NAME_SCOPEの設定によって異なります。 詳細については、「SQLSetStmtAttr」を参照してください

ODBC のスパース列の詳細については、「スパース列のサポート (ODBC)」を参照してください

参照

SQLColumns 関数
ODBC API 実装の詳細