SQLColumns

SQLColumns возвращает SQL_SUCCESS, существуют ли значения для параметров CatalogName, TableName или ColumnName . ФункцияSQLFetch возвращает значение SQL_NO_DATA, если в этих параметрах заданы недопустимые значения.

Замечание

Для больших типов значений все параметры длины будут возвращены со значением SQL_SS_LENGTH_UNLIMITED.

SQLColumns можно выполнить на статическом серверном курсоре. Попытка выполнить SQLColumns на обновляемом курсоре (динамический или набор ключей) вернет SQL_SUCCESS_WITH_INFO, указывая, что тип курсора был изменен.

Драйвер ODBC собственного клиента SQL Server поддерживает отчеты о таблицах на связанных серверах, принимая двух частей для параметра CatalogName : Linked_Server_Name.Catalog_Name.

Для ODBC 2. Приложения x , не использующие подстановочные знаки в TableName, возвращают сведения о таблицах, SQLColumns имена которых соответствуют tableName и принадлежат текущему пользователю. Если текущий пользователь не владеет таблицей, имя которой соответствует параметру TableName , возвращает сведения о таблицах, принадлежащих другим пользователям, SQLColumns где имя таблицы соответствует параметру TableName . Для ODBC 2. Приложения x с подстановочными знаками возвращают все таблицы, SQLColumns имена которых соответствуют TableName. Для ODBC 3. ПриложенияSQLColumns x возвращают все таблицы, имена которых соответствуют TableName независимо от владельца или использования подстановочных знаков.

В следующей таблице перечислены столбцы, возвращаемые результирующий набор:

Имя столбца Описание
ТИП_ДАННЫХ Возвращает SQL_VARCHAR, SQL_VARBINARY или SQL_WVARCHAR для типов данных varchar(max ).
ТИП_ИМЯ Возвращает "varchar", "varbinary" или "nvarchar" для типов данных varchar(max), varbinary(max)и nvarchar(max).
COLUMN_SIZE Возвращает SQL_SS_LENGTH_UNLIMITED для типов данных varchar(max), указывающих, что размер столбца не ограничен.
BUFFER_LENGTH Возвращает SQL_SS_LENGTH_UNLIMITED для типов данных varchar(max), указывающих, что размер буфера не ограничен.
SQL_DATA_TYPE Возвращает SQL_VARCHAR, SQL_VARBINARY или SQL_WVARCHAR для типов данных varchar(max ).
CHAR_OCTET_LENGTH Возвращает максимальную длину столбца или двоичного столбца. Возвращает значение 0, чтобы указать, что размер не ограничен.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Возвращает имя каталога, в котором определено имя коллекции схем XML. Если обнаружить имя каталога невозможно, то эта переменная содержит пустую строку.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Возвращает имя схемы, в которой определено имя коллекции схем XML. Если обнаружить имя схемы невозможно, то эта переменная содержит пустую строку.
SS_XML_SCHEMACOLLECTION_NAME Возвращает имя коллекции схем XML. Если обнаружить имя невозможно, то эта переменная содержит пустую строку.
SS_UDT_CATALOG_NAME Имя каталога, содержащего определяемый пользователем тип.
SS_UDT_SCHEMA_NAME Имя схемы, содержащей определяемый пользователем код.
SS_UDT_ASSEMBLY_TYPE_NAME Имя определяемого пользователем типа сборки.

Для определяемых пользователем пользователей существующий столбец TYPE_NAME используется для указания имени определяемого пользователем типа; поэтому в результирующий набор SQLColumns или SQLProcedureColumns не следует добавлять дополнительный столбец. DATA_TYPE для столбца или параметра UDT SQL_SS_UDT.

Для UDT параметров можно использовать новые дескрипторы для конкретного драйвера, определенные выше, чтобы получить или задать дополнительные свойства метаданных определяемого пользователем ресурса, если сервер возвращает или требует эти сведения.

Когда клиент подключается к SQL Server и вызывает SQLColumns, при использовании значений NULL или подстановочных карт для входного параметра каталога данные из других каталогов не возвращаются. Вместо этого будут возвращены только сведения о текущем каталоге. Клиент может сначала вызвать SQLTables, чтобы определить, в каком каталоге расположена требуемая таблица. Затем клиент может использовать это значение каталога для входного параметра каталога в вызове SQLColumns для получения сведений о столбцах в этой таблице.

Параметры SQLColumns и Table-Valued

Результирующий набор, возвращаемый SQLColumns, зависит от параметра SQL_SOPT_SS_NAME_SCOPE. Дополнительные сведения см. в разделе SQLSetStmtAttr. Добавлены следующие столбцы для параметров с табличным значением:

Имя столбца Тип данных Содержимое
SS_IS_COMPUTED Smallint Для столбца в TABLE_TYPE это SQL_TRUE, если столбец является вычисляемый столбец; в противном случае SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE, если столбец является столбцом удостоверения; в противном случае SQL_FALSE.

Дополнительные сведения о табличном значении параметров см. в разделе "Параметры с табличным значением" (ODBC).

Поддержка SQLColumns для расширенных функций даты и времени

Сведения о значениях, возвращаемых для типов даты и времени, см. в разделе "Метаданные каталога".

Дополнительные сведения см. в разделе "Улучшения даты и времени" (ODBC).

Поддержка SQLColumns для крупных определяемых пользователем пользователей среды CLR

SQLColumns поддерживает большие определяемые пользователем типы СРЕДЫ CLR (определяемые пользователем UDT). Дополнительные сведения см. в разделе "Крупные определяемые пользователем типы CLR" (ODBC).

Поддержка разреженных столбцов SQLColumns

В результирующий набор для SQLColumns добавлены два конкретных столбца 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 отображаются перед всеми столбцами, которые были добавлены в версии SQL Server раньше, чем SQL Server 2008, и после всех столбцов, которым требуется odBC.

Результирующий набор, возвращаемый SQLColumns, зависит от параметра SQL_SOPT_SS_NAME_SCOPE. Дополнительные сведения см. в разделе SQLSetStmtAttr.

Дополнительные сведения о разреженных столбцах в ODBC см. в разделе "Поддержка разреженных столбцов" (ODBC).

См. также

Функция SQLColumns
Подробные сведения о реализации API-интерфейсов ODBC