Поделиться через


SQLColumns

Применимо: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure azure Synapse Analytics Analytics Platform System (PDW)

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 возвращают все таблицы, имена которых соответствуют tableName независимо от владельца или использования подстановочных знаков.

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

Имя столбца Description
DATA_TYPE Возвращает SQL_VARCHAR, SQL_VARBINARY или SQL_WVARCHAR для типов данных varchar(max ).
TYPE_NAME Возвращает "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 для столбца или параметра определяемого пользователем типа имеет значение SQL_SS_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 SQL_TRUE, если столбец является столбцом идентификаторов. В противном случае — SQL_FALSE.

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

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

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

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

Поддержка функцией SQLColumns определяемых пользователем типов больших данных CLR

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

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

В результирующий набор для SQLColumns добавлены два конкретных столбца SQL Server:

Имя столбца Тип данных Description
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 (10.0.x), и после всех столбцов, которым требуется odBC.

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

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

См. также

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