Aanvullende metagegevens van Table-Valued parameter
van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Azure Synapse Analytics
Analytics 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- (