Freigeben über


SQLColumns

SQLColumns gibt SQL_SUCCESS zurück, unabhängig davon, ob Werte für die Parameter CatalogName, TableName oder ColumnName vorhanden sind. SQLFetch gibt SQL_NO_DATA zurück, wenn in diesen Parametern ungültige Werte verwendet werden.

HinweisHinweis

Für Datentypen für große Werte werden alle Längenparameter mit einem Wert von SQL_SS_LENGTH_UNLIMITED zurückgegeben.

SQLColumns kann in einem statischen Servercursor ausgeführt werden. Wenn SQLColumns in einem aktualisierbaren Cursor (dynamischer Cursor oder Keysetcursor) ausgeführt wird, wird SQL_SUCCESS_WITH_INFO zurückgegeben. Das bedeutet, dass der Cursortyp geändert wurde.

Der SQL Server Native Client-ODBC-Treiber unterstützt die Meldung von Informationen für Tabellen auf Verbindungsservern, indem er einen zweiteiligen Namen für den CatalogName-Parameter akzeptiert: Linked_Server_Name.Catalog_Name.

In ODBC 2.x-Anwendungen, die keine Platzhalter in TableName verwenden, gibt SQLColumns Informationen über alle Tabellen zurück, deren Namen TableName entsprechen und dem aktuellen Benutzer gehören. Wenn der aktuelle Benutzer keine Tabellen besitzt, deren Namen mit dem TableName-Parameter übereinstimmen, gibt SQLColumns Informationen über alle Tabellen zurück, die anderen Benutzern gehören, und deren Namen dem TableName-Parameter entsprechen. In ODBC 2.x-Anwendungen, die Platzhalter verwenden, gibt SQLColumns alle Tabellen zurück, deren Namen TableName entsprechen. In ODBC 3.x-Anwendungen gibt SQLColumns alle Tabellen zurück, deren Namen TableName entsprechen, unabhängig vom Besitzer der Tabelle und gleichgültig, ob Platzhalter verwendet werden.

In der folgenden Tabelle werden die vom Resultset zurückgegebenen Spalten aufgeführt:

Spaltenname

Beschreibung

DATA_TYPE

Gibt SQL_VARCHAR, SQL_VARBINARY oder SQL_WVARCHAR für den varchar(max)-Datentyp zurück.

TYPE_NAME

Gibt "varchar", "varbinary" oder "nvarchar" für die Datentypen varchar(max), varbinary(max) und nvarchar(max) zurück.

COLUMN_SIZE

Gibt SQL_SS_LENGTH_UNLIMITED für den varchar(max)-Datentyp zurück, d. h. die Größe der Spalte ist unbegrenzt.

BUFFER_LENGTH

Gibt SQL_SS_LENGTH_UNLIMITED für den varchar(max)-Datentyp zurück, d. h. die Größe des Puffers ist unbegrenzt.

SQL_DATA_TYPE

Gibt SQL_VARCHAR, SQL_VARBINARY oder SQL_WVARCHAR für den varchar(max)-Datentyp zurück.

CHAR_OCTET_LENGTH

Gibt die maximale Länge einer char- oder binary-Spalte zurück. Gibt 0 zurück, um anzuzeigen, dass die Größe unbegrenzt ist.

SS_XML_SCHEMACOLLECTION_CATALOG_NAME

Gibt den Namen des Katalogs zurück, in dem ein XML-Schemaauflistungsname definiert ist. Wenn der Katalogname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge.

SS_XML_SCHEMACOLLECTION_SCHEMA_NAME

Gibt den Namen des Schemas zurück, in dem ein XML-Schemaauflistungsname definiert ist. Wenn der Schemaname nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge.

SS_XML_SCHEMACOLLECTION_NAME

Gibt den Namen einer XML-Schemaauflistung zurück. Wenn der Name nicht gefunden werden kann, enthält diese Variable eine leere Zeichenfolge.

SS_UDT_CATALOG_NAME

Der Name des Katalogs, der den benutzerdefinierten Typ (User-Defined Type, UDT) enthält.

SS_UDT_SCHEMA_NAME

Der Name des Schemas, das den UDT enthält.

SS_UDT_ASSEMBLY_TYPE_NAME

Der qualifizierte Name der UDT-Assembly.

Bei UDTs wird die vorhandene TYPE_NAME-Spalte verwendet, um den Namen des UDT anzuzeigen. Daher sollte dem Resultset von SQLColumns oder SQLProcedureColumns kein zusätzlicher Name dafür hinzugefügt werden. Der DATA_TYPE für eine UDT-Spalte oder einen UDT-Parameter ist SQL_SS_UDT.

Für den benutzerdefinierten Typ von Parametern können Sie die neuen, weiter oben in diesem Abschnitt definierten treiberspezifischen Deskriptoren verwenden, um die zusätzlichen Metadateneigenschaften eines UDT abzurufen oder festzulegen, falls der Server diese Informationen zurückgibt bzw. anfordert.

Wenn ein Client eine Verbindung mit SQL Server herstellt und SQLColumns aufruft, werden keine Informationen aus anderen Katalogen zurückgegeben, wenn NULL- oder Platzhalterwerte für den Katalogeingabeparameter verwendet werden. Stattdessen werden nur Informationen über den aktuellen Katalog zurückgegeben. Der Client kann zuerst SQLTables aufrufen, um zu ermitteln, in welchem Katalog sich die gewünschte Tabelle befindet. Anschließend kann der Client im Aufruf von SQLColumns diesen Katalogwert als Katalogeingabeparameter verwenden, um die Informationen über die Spalten in dieser Tabelle abzurufen.

SQLColumns und Tabellenwertparameter

Das von SQLColumns zurückgegebene Resultset hängt von der Einstellung von SQL_SOPT_SS_NAME_SCOPE ab. Weitere Informationen finden Sie unter SQLSetStmtAttr. Die folgenden Spalten wurden für Tabellenwertparameter hinzugefügt:

Spaltenname

Datentyp

Inhalt

SS_IS_COMPUTED

Smallint

Für eine Spalte vom Datentyp TABLE_TYPE ist dies SQL_TRUE, wenn es sich um eine berechnete Spalte handelt, andernfalls SQL_FALSE.

SS_IS_IDENTITY

Smallint

SQL_TRUE, wenn die Spalte eine Identitätsspalte ist, andernfalls SQL_FALSE.

Weitere Informationen zu Tabellenwertparametern finden Sie unter Tabellenwertparameter (ODBC).

SQLColumns-Unterstützung für erweiterte Funktionen für Datum und Uhrzeit

Informationen zu den für Datums-/Uhrzeit-Datentypen zurückgegebenen Werten finden Sie unter Katalogmetadaten.

Weitere Informationen finden Sie unter Datums-/Uhrzeitverbesserungen (ODBC).

SQLColumns-Unterstützung für große CLR-UDTs

SQLColumns unterstützt große CLR-benutzerdefinierte Typen (UDTs). Weitere Informationen finden Sie unter Große benutzerdefinierte CLR-Typen (ODBC).

SQLColumns-Unterstützung für Spalten mit geringer Dichte

Zwei SQL Server-spezifische Spalten wurden dem Resultset für SQLColumns hinzugefügt:

Spaltenname

Datentyp

Beschreibung

SS_IS_SPARSE

Smallint

SQL_TRUE, wenn die Spalte eine Spalte mit geringer Dichte ist, andernfalls SQL_FALSE.

SS_IS_COLUMN_SET

Smallint

Wenn die Spalte die column_set-Spalte ist, SQL_TRUE, andernfalls SQL_FALSE.

In Übereinstimmung mit der ODBC-Spezifikation werden SS_IS_SPARSE und SS_IS_COLUMN_SET vor alle treiberspezifischen Spalten gestellt, die in Versionen vor SQL Server 2008 zu SQL Server hinzugefügt wurden, sowie nach alle Spalten, die von ODBC selbst benötigt werden.

Das von SQLColumns zurückgegebene Resultset hängt von der Einstellung von SQL_SOPT_SS_NAME_SCOPE ab. Weitere Informationen finden Sie unter SQLSetStmtAttr.

Weitere Informationen über Spalten mit geringer Dichte in ODBC finden Sie unter Unterstützung für Spalten mit geringer Dichte (ODBC).

Siehe auch

Konzepte

ODBC-API-Implementierungsdetails

Andere Ressourcen

SQLColumns-Funktion