SQLColumns

Gilt für:SQL ServerAzure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLColumns gibt SQL_SUCCESS zurück, 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.

Hinweis

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

SQLColumns können auf einem statischen Servercursor ausgeführt werden. Ein Versuch, SQLColumns auf einem aktualisierbaren Cursor (dynamisch oder keyset) auszuführen, gibt SQL_SUCCESS_WITH_INFO zurück, der angibt, dass der Cursortyp geändert wurde.

Der ODBC-Treiber für SQL Server Native Client unterstützt Berichtsinformationen für Tabellen auf verknüpften Servern, indem er einen zweiteiligen Namen für den Parameter "CatalogName " akzeptiert: Linked_Server_Name.Catalog_Name.

Für ODBC 2.x-Anwendungen verwenden keine Wild Karte s in TableName, SQLColumns gibt Informationen zu allen Tabellen zurück, deren Namen mit "TableName" übereinstimmen und im Besitz des aktuellen Benutzers sind. Wenn der aktuelle Benutzer keine Tabelle besitzt, deren Name dem Parameter "TableName" entspricht, gibt SQLColumns Informationen zu allen Tabellen zurück, die anderen Benutzern gehören, in denen der Tabellenname mit dem Parameter "TableName" übereinstimmt. Für ODBC 2.x-Anwendungen mit Wild Karte s, SQLColumns gibt alle Tabellen zurück, deren Namen mit "TableName" übereinstimmen. Für ODBC 3.x-AnwendungenSQLColumns gibt alle Tabellen zurück, deren Namen mit "TableName" übereinstimmen, unabhängig vom Besitzer oder ob Platzhalter Karte 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 die Datentypen varchar(max) 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 varchar(max)- Datentypen zurück, die angeben, dass die Größe der Spalte unbegrenzt ist.
BUFFER_LENGTH Gibt SQL_SS_LENGTH_UNLIMITED für varchar(max)- Datentypen zurück, die angeben, dass die Größe des Puffers unbegrenzt ist.
SQL_DATA_TYPE Gibt SQL_VARCHAR, SQL_VARBINARY oder SQL_WVARCHAR für die Datentypen varchar(max) 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 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 anzugeben; daher sollte der Resultset von SQLColumns oder SQLProcedureColumns keine zusätzliche Spalte 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 mit NULL oder wilden Karte Werten für den Katalogeingabeparameter keine Informationen aus anderen Katalogen zurückgegeben. Stattdessen werden nur Informationen über den aktuellen Katalog zurückgegeben. Der Client kann zuerst SQLTables aufrufen, um zu bestimmen, in welchem Katalog sich die gewünschte Tabelle befindet. Anschließend kann der Client diesen Katalogwert für den Katalogeingabeparameter im Aufruf von SQLColumns verwenden, um Informationen zu den Spalten in dieser Tabelle abzurufen.

SQLColumns und Tabellenwertparameter

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

Spaltenname Datentyp Contents
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 "Table-Valued Parameters (ODBC)".

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

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

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

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

SQLColumns unterstützt große benutzerdefinierte CLR-Typen (UDTs). Weitere Informationen finden Sie unter "Large CLR User-Defined Types (ODBC)".

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

Dem Resultset für SQLColumns wurden zwei spezifische SQL Server-Spalten hinzugefügt:

Spaltenname Datentyp Beschreibung
SS_IS_SPARSE Smallint SQL_TRUE, wenn die Spalte eine Sparsespalte ist, andernfalls SQL_FALSE.
SS_IS_COLUMN_SET Smallint Wenn die Spalte die column_set Spalte ist, ist dies SQL_TRUE; andernfalls SQL_FALSE.

In Übereinstimmung mit der ODBC-Spezifikation werden SS_IS_SPARSE und SS_IS_COLUMN_SET vor allen treiberspezifischen Spalten angezeigt, die vor SQL Server-Versionen vor SQL Server 2008 (10.0.x) und nach allen spalten, die von ODBC selbst vorgeschrieben wurden.

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

Weitere Informationen zu sparse columns in ODBC finden Sie unter "Sparse Columns Support (ODBC)".

Weitere Informationen

SQLColumns-Funktion
ODBC-API-Implementierungsdetails