SQLColumns
SQLColumns
は、 CatalogName、 TableName、または ColumnName パラメーターの値が存在するかどうかをSQL_SUCCESS返します。 SQLFetch は、これらのパラメーターで無効な値が使用されている場合にSQL_NO_DATAを返します。
注意
大きな値型の場合、すべての長さパラメーターが 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 でワイルドカードを使用せず、名前が TableName と一致し、SQLColumns
現在のユーザーが所有しているテーブルに関する情報を返します。 現在のユーザーが 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 の名前が示されます。そのため、 または SQLProcedureColumns の結果セットSQLColumns
に列を追加する必要はありません。 UDT 列または UDT パラメーターの場合、DATA_TYPE は SQL_SS_UDT です。
サーバーからパラメーターの UDT に関する追加のメタデータ プロパティを返したり、サーバーでこのメタデータ プロパティの情報が必要となる場合は、上記に定義したドライバー固有の新しい記述子を使用して、UDT のメタデータ プロパティの取得や設定を行えます。
クライアントがSQL Serverに接続して SQLColumns を呼び出す場合、カタログ入力パラメーターに NULL 値またはワイルド カード値を使用しても、他のカタログから情報は返されません。 代わりに、現在のカタログに関する情報だけが返されます。 クライアントは、最初に SQLTables を呼び出して、目的のテーブルが配置されているカタログを決定できます。 クライアントは、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 User-Defined型 (ODBC)」を参照してください。
SQLColumns によるスパース列のサポート
SQLColumns の結果セットには、次の 2 つのSQL Serverの特定の列が追加されています。
列名 | データ型 | 説明 |
---|---|---|
SS_IS_SPARSE | Smallint |
列がスパース列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。 |
SS_IS_COLUMN_SET | Smallint |
列が column_set 列の場合は SQL_TRUE、それ以外の場合は SQL_FALSE になります。 |
ODBC 仕様に準拠して、SS_IS_SPARSEとSS_IS_COLUMN_SETは、2008 年より SQL Server前のバージョンSQL Serverに追加されたすべてのドライバー固有の列の前、および ODBC 自体によって義務付けられているすべての列の後に表示されます。
SQLColumns によって返される結果セットは、SQL_SOPT_SS_NAME_SCOPEの設定によって異なります。 詳細については、「 SQLSetStmtAttr」を参照してください。
ODBC のスパース列の詳細については、「 スパース列のサポート (ODBC)」を参照してください。