SQLColumns

gäller för:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLColumns returnerar SQL_SUCCESS om det finns värden för parametrarna CatalogName,TableName eller ColumnName . SQLFetch returnerar SQL_NO_DATA när ogiltiga värden används i dessa parametrar.

Note

För stora värdetyper returneras alla längdparametrar med värdet SQL_SS_LENGTH_UNLIMITED.

SQLColumns kan köras på en statisk servermarkör. Ett försök att köra SQLColumns på en uppdaterabar (dynamisk eller keyset) markör kommer att returnera SQL_SUCCESS_WITH_INFO indikera att markörtypen har ändrats.

Den SQL Server Native Client ODBC-drivrutinen stödjer rapporteringsinformation för tabeller på länkade servrar genom att acceptera ett tvådelat namn för parametern CatalogName: Linked_Server_Name.Catalog_Name.

För ODBC 2. x applikationer som inte använder jokrar i TableName, SQLColumns returnerar information om alla tabeller vars namn matchar TableName och ägs av den aktuella användaren. Om den nuvarande användaren inte äger någon tabell vars namn matchar parametern TableName, returnerar SQLColumns information om alla tabeller som ägs av andra användare där tabellnamnet matchar parametern TableName . För ODBC 2. x applikationer som använder joker, returnerar SQLColumns alla tabeller vars namn matchar TableName. För ODBC 3. x applikationer SQLColumns returnerar alla tabeller vars namn matchar TableName oavsett ägare eller om jokrar används.

Följande tabell listar kolumnerna som returneras av resultatmängden:

Kolumnnamn Description
DATATYP Returnerar SQL_VARCHAR, SQL_VARBINARY eller SQL_WVARCHAR för varchar(max) -datatyperna.
TYPE_NAME Returnerar "varchar", "varbinary" eller "nvarchar" för varchar(max), varbinary(max) och nvarchar(max) datatyperna.
KOLUMN_STORLEK Returnerar SQL_SS_LENGTH_UNLIMITED för varchar(max) -datatyper som indikerar att kolumnens storlek är obegränsad.
BUFFERT_LÄNGD Returnerar SQL_SS_LENGTH_UNLIMITED för varchar(max) -datatyper som indikerar att buffertens storlek är obegränsad.
SQL_DATA_TYPE Returnerar SQL_VARCHAR, SQL_VARBINARY eller SQL_WVARCHAR för varchar(max) -datatyperna.
CHAR_OCTET_LENGTH Returnerar den maximala längden på en char- eller binärkolumn. Returnerar 0 för att indikera att storleken är obegränsad.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Returnerar namnet på katalogen där namnet på en XML-schemasamling är definierad. Om katalognamnet inte kan hittas innehåller denna variabel en tom sträng.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Returnerar namnet på schemat där ett XML-schemasamlingsnamn är definierat. Om schemanamnet inte kan hittas innehåller denna variabel en tom sträng.
SS_XML_SCHEMACOLLECTION_NAME Returnerar namnet på en XML-schemasamling. Om namnet inte kan hittas innehåller denna variabel en tom sträng.
SS_UDT_CATALOG_NAME Namnet på katalogen som innehåller UDT (användardefinierad typ).
SS_UDT_SCHEMA_NAME Namnet på schemat som innehåller UDT.
SS_UDT_ASSEMBLY_TYPE_NAME Det församlingskvalificerade namnet på UDT.

För UDT:er används den befintliga kolumnen TYPE_NAME för att ange namnet på UDT; därför bör ingen ytterligare kolumn för den läggas till i resultatuppsättningen av SQLColumns eller SQLProcedureColumns. Den DATA_TYPE för en UDT-kolumn eller parameter är SQL_SS_UDT.

För UDT av parametrar kan du använda de nya drivrutinsspecifika deskriptorerna som definierats ovan för att hämta eller ställa in de extra metadata-egenskaperna för en UDT, om servern skulle returnera eller kräva denna information.

När en klient ansluter till SQL Server och anropar SQLColumns, kommer användning av NULL- eller wildcard-värden för katalogens inmatningsparameter inte att returnera information från andra kataloger. Istället kommer endast information om den aktuella katalogen att returneras. Klienten kan först anropa SQLTables för att avgöra i vilken katalog den önskade tabellen finns. Klienten kan sedan använda det katalogvärdet för katalogens inmatningsparameter i sitt anrop till SQLColumns för att hämta information om kolumnerna i den tabellen.

SQLColumns och Table-Valued parametrar

Resultatmängden som returneras av SQLColumns beror på inställningen SQL_SOPT_SS_NAME_SCOPE. För mer information, se SQLSetStmtAttr. Följande kolumner har lagts till för tabellvärda parametrar:

Kolumnnamn Datatyp Innehåll
SS_IS_COMPUTED Smallint För en kolumn i en TABLE_TYPE är detta SQL_TRUE om kolumnen är en beräknad kolumn; annars SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE om kolumnen är en identitetskolumn; annars SQL_FALSE.

För mer information om tabellvärda parametrar, se Table-Valued Parameters (ODBC).

SQLColumns-stöd för förbättrade datum- och tidsfunktioner

För information om de värden som returneras för datum-/tidstyper, se Katalogmetadata.

Mer information finns i Förbättringar av datum och tid (ODBC).

SQLColumns-stöd för stora CLR UDT:er

SQLColumns stöder stora CLR-användardefinierade typer (UDT). Mer information finns i Large CLR User-Defined Types (ODBC).

SQLColumns-stöd för glesa kolumner

Två SQL Server-specifika kolumner har lagts till resultatuppsättningen för SQLColumns:

Kolumnnamn Datatyp Description
SS_IS_SPARSE Smallint Om kolumnen är en gles kolumn är detta SQL_TRUE; annars SQL_FALSE.
SS_IS_COLUMN_SET Smallint Om kolumnen är den column_set kolumnen är detta SQL_TRUE; annars SQL_FALSE.

I enlighet med ODBC-specifikationen visas SS_IS_SPARSE och SS_IS_COLUMN_SET före alla drivrutinsspecifika kolumner som lades till i SQL Server versioner tidigare än SQL Server 2008 (10.0.x), och efter alla kolumner som ODBC själv kräver.

Resultatmängden som returneras av SQLColumns beror på inställningen SQL_SOPT_SS_NAME_SCOPE. För mer information, se SQLSetStmtAttr.

För mer information om glesa kolumner i ODBC, se Sparse Columns Support (ODBC).