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