Freigeben über


Zusätzliche Tabellenwertparameter-Metadaten

Um Metadaten für einen Tabellenwertparameter abzurufen, ruft eine Anwendung SQLProcedureColumns auf. Für einen Tabellenwertparameter gibt SQLProcedureColumns eine einzige 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 mit Tabellenwertparametern bereitzustellen. In Übereinstimmung mit der ODBC-Spezifikation werden SS_TYPE_CATALOG_NAME und SS_TYPE_SCHEMA_NAME allen treiberspezifischen Spalten vorangestellt, die in früheren Versionen von SQL Server hinzugefügt wurden, sowie allen Spalten nachgestellt, die von ODBC selbst benötigt werden.

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

Integer

NULL

BUFFER_LENGTH

Integer

0

DECIMAL_DIGITS

Smallint

NULL

NUM_PREC_RADIX

Smallint

NULL

NULLABLE

Smallint nicht NULL

SQL_NULLABLE

REMARKS

Varchar

NULL

COLUMN_DEF

WVarchar(4000)

NULL

SQL_DATA_TYPE

Smallint nicht NULL

SQL_SS_TABLE

SQL_DATETIME_SUB

Smallint

NULL

CHAR_OCTET_LENGTH

Integer

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, werden aber tatsächlich in allen neueren Versionen des SQL Server-ODBC-Treibers als WVarchar 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.

Zum Abrufen zusätzlicher Metadaten für Tabellenwertparameter 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. Die Anwendung übergibt dann den TYPE_NAME des Tabellenwertparameters als TableName-Parameter. SS_TYPE_CATALOG_NAME bzw. SS_TYPE_SCHEMA_NAME wird mit dem CatalogName-Parameter bzw. dem SchemaName-Parameter verwendet, um den Katalog und das Schema für den Tabellenwertparameter 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 festgelegt werden.

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.

Siehe auch

Konzepte