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


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

Применимо к: SQL Server Azure SQL DatabaseУправляемый экземпляр SQL AzureAzure Synapse AnalyticsAnalytics 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 во всех последних SQL Server драйверах ODBC. Это изменение было сделано, когда к спецификации 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)