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.