Delen via


Aanvullende metagegevens van Table-Valued parameter

van toepassing op:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

Een toepassing roept SQLProcedureColumns aan om metagegevens op te halen voor een parameter met tabelwaarde. Voor een parameter met tabelwaarde retourneert SQLProcedureColumns één rij. Er zijn twee extra SQL Server-specifieke kolommen, SS_TYPE_CATALOG_NAME en SS_TYPE_SCHEMA_NAME, toegevoegd om schema- en catalogusgegevens op te geven voor tabeltypen die zijn gekoppeld aan parameters met tabelwaarden. In overeenstemming met de ODBC-specificatie worden SS_TYPE_CATALOG_NAME en SS_TYPE_SCHEMA_NAME weergegeven vóór alle stuurprogrammaspecifieke kolommen die zijn toegevoegd in eerdere versies van SQL Server, en na alle kolommen die door ODBC zelf zijn verplicht.

De volgende tabel bevat kolommen die significant zijn voor parameters met tabelwaarden.

Kolomnaam Gegevenstype Waarde/opmerkingen
DATA_TYPE Smallint niet NULL SQL_SS_TABLE
TYPE_NAME WVarchar(128) niet NULL De typenaam van de parameter met tabelwaarde.
COLUMN_SIZE Geheel getal NUL
BUFFER_LENGTH Geheel getal 0
DECIMAL_DIGITS Smallint NUL
NUM_PREC_RADIX Smallint NUL
NULLABLE Smallint niet NULL SQL_NULLABLE
OPMERKINGEN Varchar NUL
COLUMN_DEF WVarchar(4000) NUL
SQL_DATA_TYPE Smallint niet NULL SQL_SS_TABLE
SQL_DATETIME_SUB Smallint NUL
CHAR_OCTET_LENGTH Geheel getal NUL
ORDINAL_POSITION Geheel getal niet NULL De rangtelpositie van de parameter.
IS_NULLABLE Varchar "JA"
SS_TYPE_CATALOG_NAME WVarchar(128) niet NULL De catalogus met de typedefinitie voor het tabeltype van de parameter met tabelwaarde.
SS_TYPE_SCHEMA_NAME WVarchar(128) niet NULL Het schema met de typedefinitie voor het tabeltype van de parameter met tabelwaarde.

De WVarchar-kolommen worden gedefinieerd als Varchar in de ODBC-specificatie, maar worden in feite geretourneerd als WVarchar in alle recente ODBC-stuurprogramma's van SQL Server. Deze wijziging is aangebracht toen Unicode-ondersteuning werd toegevoegd aan de ODBC 3.5-specificatie, maar niet expliciet werd opgeroepen.

Een toepassing gebruikt de catalogusfuncties SQLColumns en SQLPrimaryKeys om aanvullende metagegevens te verkrijgen voor parameters met tabelwaarde. Voordat deze functies worden aangeroepen voor parameters met tabelwaarde, moet de toepassing het instructiekenmerk instellen SQL_SOPT_SS_NAME_SCOPE op SQL_SS_NAME_SCOPE_TABLE_TYPE. Deze waarde geeft aan dat de toepassing metagegevens vereist voor een tabeltype in plaats van een werkelijke tabel. De toepassing geeft vervolgens de TYPE_NAME van de parameter met tabelwaarde door als de parameter TableName. SS_TYPE_CATALOG_NAME en SS_TYPE_SCHEMA_NAME worden gebruikt met respectievelijk de parameters CatalogName en SchemaName om de catalogus en het schema voor de parameter met tabelwaarden te identificeren. Wanneer een toepassing klaar is met het ophalen van metagegevens voor parameters met tabelwaarden, moet deze SQL_SOPT_SS_NAME_SCOPE terugzetten op de standaardwaarde van SQL_SS_NAME_SCOPE_TABLE.

Wanneer SQL_SOPT_SS_NAME_SCOPE is ingesteld op SQL_SS_NAME_SCOPE_TABLE, mislukken query's op gekoppelde servers. Aanroepen naar SQLColumns of SQLPrimaryKeys met een catalogus die een serveronderdeel bevat, mislukken.

Zie ook

ODBC- (Table-Valued Parameters)