SQLColumns
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
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 Berichterstellungsinformationen für Tabellen auf Verbindungsservern, indem er einen zweiteiligen Namen für den CatalogName-Parameter akzeptiert: Linked_Server_Name.Catalog_Name.
Für ODBC 2. x-Anwendungen , die keine Feldhalter in TableName verwenden, geben Informationen zu allen Tabellen zurück, SQLColumns
deren Namen mit TableName übereinstimmen und sich im Besitz des aktuellen Benutzers befinden. Wenn der aktuelle Benutzer keine Tabelle besitzt, deren Name mit dem TableName-Parameter übereinstimmt, gibt Informationen zu allen Tabellen zurück, SQLColumns
die anderen Benutzern gehören, bei denen der Tabellenname mit dem TableName-Parameter übereinstimmt. Für ODBC 2. x-Anwendungen , die Diesplatzierungen verwenden, gibt alle Tabellen zurück, SQLColumns
deren Namen mit TableName übereinstimmen. Für ODBC 3. x-AnwendungenSQLColumns
geben alle Tabellen zurück, deren Namen mit TableName übereinstimmen, unabhängig vom Besitzer oder der Verwendung von Feldhaltern.
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 varchar(max)- Datentypen 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 angibt, dass die Spaltengröße unbegrenzt ist. |
BUFFER_LENGTH | Gibt SQL_SS_LENGTH_UNLIMITED für varchar(max) -Datentypen zurück, die angibt, dass die Größe des Puffers unbegrenzt ist. |
SQL_DATA_TYPE | Gibt SQL_VARCHAR, SQL_VARBINARY oder SQL_WVARCHAR für die varchar(max)- Datentypen 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 die 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 dem 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 mithilfe von NULL- oder Wild-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. Der Client kann dann diesen Katalogwert für den Katalogeingabeparameter in seinem 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 von SQL_SOPT_SS_NAME_SCOPE ab. Weitere Informationen finden Sie unter SQLSetStmtAttr. Die folgenden Spalten wurden für Tabellenwertparameter hinzugefügt:
Spaltenname | Datentyp | Inhalte |
---|---|---|
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 Werten, die für Datums-/Uhrzeittypen zurückgegeben werden, 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 SQL Server spezifischen 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, 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 SQL Server Versionen vor SQL Server 2008 hinzugefügt wurden, und nach allen Von ODBC selbst vorgeschriebenen Spalten.
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 zu Sparsespalten in ODBC finden Sie unter Unterstützung von Sparsespalten (ODBC).