Dela via


Ytterligare Table-Valued parametermetadata

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

För att hämta metadata för en tabellvärdesparameter anropar ett program SQLProcedureColumns. För en tabellvärdesparameter returnerar SQLProcedureColumns en enskild rad. Ytterligare två SQL Server-specifika kolumner, SS_TYPE_CATALOG_NAME och SS_TYPE_SCHEMA_NAME, har lagts till för att tillhandahålla schema- och kataloginformation för tabelltyper som är associerade med tabellvärdesparametrar. I enlighet med ODBC-specifikationen visas SS_TYPE_CATALOG_NAME och SS_TYPE_SCHEMA_NAME före alla drivrutinsspecifika kolumner som lagts till i tidigare versioner av SQL Server och efter alla kolumner som har tilldelats av SJÄLVA ODBC.

I följande tabell visas kolumner som är viktiga för tabellvärdesparametrar.

Kolumnnamn Datatyp Värde/kommentarer
DATA_TYPE Smallint inte NULL SQL_SS_TABLE
TYPE_NAME WVarchar(128) inte NULL Typnamnet på parametern table-valued.
COLUMN_SIZE Heltal NOLL
BUFFER_LENGTH Heltal 0
DECIMAL_DIGITS Smallint NOLL
NUM_PREC_RADIX Smallint NOLL
NULLABLE Smallint inte NULL SQL_NULLABLE
ANMÄRKNINGAR Varchar NOLL
COLUMN_DEF WVarchar(4000) NOLL
SQL_DATA_TYPE Smallint inte NULL SQL_SS_TABLE
SQL_DATETIME_SUB Smallint NOLL
CHAR_OCTET_LENGTH Heltal NOLL
ORDINAL_POSITION Heltal inte NULL Parameterns ordningstalsposition.
IS_NULLABLE Varchar "JA"
SS_TYPE_CATALOG_NAME WVarchar(128) inte NULL Katalogen som innehåller typdefinitionen för tabelltypen för parametern table-valued.
SS_TYPE_SCHEMA_NAME WVarchar(128) inte NULL Schemat som innehåller typdefinitionen för tabelltypen för parametern table-valued.

WVarchar-kolumnerna definieras som Varchar i ODBC-specifikationen, men returneras faktiskt som WVarchar i alla de senaste SQL Server ODBC-drivrutinerna. Den här ändringen gjordes när Unicode-stöd lades till i ODBC 3.5-specifikationen, men inte uttryckligen framhävdes.

För att hämta ytterligare metadata för tabellvärdesparametrar använder ett program katalogfunktionerna SQLColumns och SQLPrimaryKeys. Innan dessa funktioner anropas för tabellvärdesparametrar måste programmet ange instruktionsattributet SQL_SOPT_SS_NAME_SCOPE till SQL_SS_NAME_SCOPE_TABLE_TYPE. Det här värdet anger att programmet kräver metadata för en tabelltyp i stället för en faktisk tabell. Programmet skickar sedan TYPE_NAME för parametern table-valued som parametern TableName. SS_TYPE_CATALOG_NAME och SS_TYPE_SCHEMA_NAME används med parametrarna CatalogName respektive SchemaName för att identifiera katalogen och schemat för parametern table-valued. När ett program har hämtat metadata för tabellvärdesparametrar måste det ange SQL_SOPT_SS_NAME_SCOPE tillbaka till standardvärdet SQL_SS_NAME_SCOPE_TABLE.

När SQL_SOPT_SS_NAME_SCOPE är inställt på SQL_SS_NAME_SCOPE_TABLE misslyckas frågor till länkade servrar. Anrop till SQLColumns eller SQLPrimaryKeys med en katalog som innehåller en serverkomponent misslyckas.

Se även

Table-Valued parametrar (ODBC)