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


Дополнительные метаданные возвращающего табличное значение параметра

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

Чтобы получить метаданные для табличного параметра, приложение вызывает SQLProcedureColumns. Для табличного параметра SQLProcedureColumns возвращает одну строку. Добавлены два дополнительных столбца SQL Server, SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME, чтобы предоставить сведения о схеме и каталоге для типов таблиц, связанных с табличными параметрами. В соответствии со спецификацией ODBC SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME отображаются перед добавлением всех столбцов, относящихся к драйверу, в более ранних версиях SQL Server, и после всех столбцов, которым требуется сам ODBC.

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

Имя столбца Тип данных Значения/комментарии
DATA_TYPE Smallint, не NULL SQL_SS_TABLE
TYPE_NAME WVarchar(128), не NULL Имя типа возвращающего табличное значение параметра.
COLUMN_SIZE Целое NULL
BUFFER_LENGTH Целое 0
DECIMAL_DIGITS Smallint NULL
NUM_PREC_RADIX Smallint NULL
NULLABLE Smallint, не NULL SQL_NULLABLE
ПРИМЕЧАНИЯ Varchar NULL
COLUMN_DEF WVarchar(4000) NULL
SQL_DATA_TYPE Smallint, не NULL SQL_SS_TABLE
SQL_DATETIME_SUB Smallint NULL
CHAR_OCTET_LENGTH Целое NULL
ORDINAL_POSITION Integer, не NULL Порядковый номер параметра.
IS_NULLABLE Varchar "YES"
SS_TYPE_CATALOG_NAME WVarchar(128), не NULL Каталог, содержащий определение табличного типа для возвращающего табличное значение параметра.
SS_TYPE_SCHEMA_NAME WVarchar(128), не NULL Схема, содержащая определение табличного типа для возвращающего табличное значение параметра.

Столбцы WVarchar определяются как Varchar в спецификации ODBC, но фактически возвращаются как WVarchar во всех последних драйверах ODBC SQL Server. Это изменение было сделано, когда к спецификации ODBC 3.5 была добавлена поддержка Юникода, но оно не описано.

Чтобы получить дополнительные метаданные для параметров с табличным значением, приложение использует функции каталога SQLColumns и SQLPrimaryKeys. Перед вызовом этих функций для возвращающих табличное значение параметров приложение должно присвоить атрибуту инструкции SQL_SOPT_SS_NAME_SCOPE значение SQL_SS_NAME_SCOPE_TABLE_TYPE. Оно указывает, что приложению требуются метаданные возвращающего табличное значение типа, а не таблицы. Затем приложение передает TYPE_NAME табличного параметра в качестве параметра TableName . SS_TYPE_CATALOG_NAME и SS_TYPE_SCHEMA_NAME используются с параметрами CatalogName и SchemaName соответственно для идентификации каталога и схемы для параметра с табличным значением. Когда приложение закончит получать метаданные для возвращающего табличное значение параметра, оно должно вновь присвоить SQL_SOPT_SS_NAME_SCOPE значение по умолчанию SQL_SS_NAME_SCOPE_TABLE.

Если SQL_SOPT_SS_NAME_SCOPE имеет значение SQL_SS_NAME_SCOPE_TABLE, то запросы к связанным серверам завершаются ошибкой. Вызовы SQLColumns или SQLPrimaryKeys с каталогом, содержащим компонент сервера, завершаются ошибкой.

См. также

Возвращающие табличные значения параметры (ODBC)