Zusätzliche Tabellenwertparameter-Metadaten
Gilt für: SQL Server Azure SQL-Datenbank Azure SQL verwaltete Instanz Azure Synapse Analytics Analytics Platform System (PDW)
Um Metadaten für einen Tabellenwertparameter abzurufen, ruft eine Anwendung SQLProcedureColumns auf. Bei einem Tabellenwertparameter gibt SQLProcedureColumns eine einzelne Zeile zurück. Zwei zusätzliche SQL Server-spezifische Spalten, SS_TYPE_CATALOG_NAME und SS_TYPE_SCHEMA_NAME, wurden hinzugefügt, um Schema- und Kataloginformationen für Tabellentypen bereitzustellen, die tabellenwertbezogenen Parametern zugeordnet sind. In Übereinstimmung mit der ODBC-Spezifikation werden SS_TYPE_CATALOG_NAME und SS_TYPE_SCHEMA_NAME vor allen treiberspezifischen Spalten angezeigt, die in früheren Versionen von SQL Server hinzugefügt wurden, und nach allen Spalten, die von ODBC selbst vorgeschrieben wurden.
In der folgenden Tabelle sind die Spalten aufgeführt, die für Tabellenwertparameter signifikant sind.
Spaltenname | Datentyp | Wert/Kommentare |
---|---|---|
DATA_TYPE | Smallint nicht NULL | SQL_SS_TABLE |
TYPE_NAME | WVarchar(128) nicht NULL | Der Typname des Tabellenwertparameters. |
COLUMN_SIZE | Ganzzahl | NULL |
BUFFER_LENGTH | Ganzzahl | 0 |
DECIMAL_DIGITS | Smallint | NULL |
NUM_PREC_RADIX | Smallint | NULL |
NULLABLE | Smallint nicht NULL | SQL_NULLABLE |
ANMERKUNGEN | Varchar | NULL |
COLUMN_DEF | WVarchar(4000) | NULL |
SQL_DATA_TYPE | Smallint nicht NULL | SQL_SS_TABLE |
SQL_DATETIME_SUB | Smallint | NULL |
CHAR_OCTET_LENGTH | Ganzzahl | NULL |
ORDINAL_POSITION | Integer nicht NULL | Die Ordnungsposition des Parameters. |
IS_NULLABLE | Varchar | "YES" |
SS_TYPE_CATALOG_NAME | WVarchar(128) nicht NULL | Der Katalog, der die Typdefinition für den Tabellentyp des Tabellenwertparameters enthält. |
SS_TYPE_SCHEMA_NAME | WVarchar(128) nicht NULL | Das Schema, das die Typdefinition für den Tabellentyp des Tabellenwertparameters enthält. |
Die WVarchar-Spalten werden in der ODBC-Spezifikation als Varchar definiert, aber tatsächlich als WVarchar in allen zuletzt verwendeten SQL Server ODBC-Treibern zurückgegeben. Diese Änderung wurde vorgenommen, als der ODBC 3.5-Spezifikation die Unicode-Unterstützung hinzugefügt wurde. Sie wurde jedoch nicht explizit ausgeschrieben.
Um zusätzliche Metadaten für Tabellenwertparameter abzurufen, verwendet eine Anwendung die Katalogfunktionen SQLColumns und SQLPrimaryKeys. Vor dem Aufruf dieser Funktionen für Tabellenwertparameter muss die Anwendung das Anweisungsattribut SQL_SOPT_SS_NAME_SCOPE auf SQL_SS_NAME_SCOPE_TABLE_TYPE festlegen. Dieser Wert gibt an, dass die Anwendung Metadaten für einen Tabellentyp anstatt einer tatsächlichen Tabelle erfordert. Anschließend übergibt die Anwendung die TYPE_NAME des Tabellenwertparameters als TableName-Parameter . SS_TYPE_CATALOG_NAME und SS_TYPE_SCHEMA_NAME werden mit den Parametern "CatalogName" bzw. "SchemaName" verwendet, um den Katalog und das Schema für den Parameter mit Tabellenwert zu identifizieren. Wenn eine Anwendung das Abrufen von Metadaten für Tabellenwertparameter abgeschlossen hat, muss sie SQL_SOPT_SS_NAME_SCOPE wieder auf den Standardwert SQL_SS_NAME_SCOPE_TABLE festlegen.
Wenn SQL_SOPT_SS_NAME_SCOPE auf SQL_SS_NAME_SCOPE_TABLE festgelegt ist, schlagen Abfragen von Verbindungsservern fehl. Aufrufe von SQLColumns oder SQLPrimaryKeys mit einem Katalog, der eine Serverkomponente enthält, schlagen fehl.