SQLColumns

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)

SQLColumns zwraca SQL_SUCCESS czy istnieją wartości dla parametrów CatalogName, TableName lub ColumnName . SQLFetch zwraca SQL_NO_DATA, gdy w tych parametrach użyte są nieprawidłowe wartości.

Note

Dla typów dużych wartości wszystkie parametry długości zostaną zwrócone z wartością SQL_SS_LENGTH_UNLIMITED.

SQLColumns może być wykonywany na statycznym kursorze serwera. Próba wykonania SQLColumns na kursorze (dynamicznym lub zestawu klawiszy) zwróci SQL_SUCCESS_WITH_INFO wskazując, że typ kursora został zmieniony.

Sterownik ODBC SQL Server Native Client obsługuje raportowanie informacji dla tabel na połączonych serwerach, akceptując dwuczęściową nazwę parametru CatalogName: Linked_Server_Name.Catalog_Name.

Dla ODBC 2. x aplikacji nie używających wolnych w TableName, SQLColumns zwraca informacje o tabelach, których nazwy odpowiadają TableName i należą do aktualnego użytkownika. Jeśli aktualny użytkownik nie posiada tabeli, której nazwa odpowiada parametrowi TableName , SQLColumns zwraca informacje o tabelach należących do innych użytkowników, gdzie nazwa tabeli odpowiada parametrowi TableName . Dla ODBC 2. x aplikacji używających znaków dzikich, SQLColumns zwraca wszystkie tabele, których nazwy odpowiadają TableName. Dla ODBC 3. x applications SQLColumns zwraca wszystkie tabele, których nazwy odpowiadają nazwie TableName , niezależnie od właściciela lub czy użyte są karty dzikie.

Poniższa tabela przedstawia kolumny zwracane przez zestaw wyników:

Nazwa kolumny Description
TYP_DANYCH Zwraca SQL_VARCHAR, SQL_VARBINARY lub SQL_WVARCHAR dla typów danych varchar(max).
TYPE_NAME Zwraca "varchar", "varbinary" lub "nvarchar" dla typów danych varchar(max),varbinary(max) i nvarchar(max ).
ROZMIAR_KOLUMNY Zwraca SQL_SS_LENGTH_UNLIMITED dla typów danych varchar(max), co wskazuje, że rozmiar kolumny jest nieograniczony.
BUFFER_LENGTH Zwraca SQL_SS_LENGTH_UNLIMITED dla typów danych varchar(max), wskazując, że rozmiar bufora jest nieograniczony.
SQL_DATA_TYPE Zwraca SQL_VARCHAR, SQL_VARBINARY lub SQL_WVARCHAR dla typów danych varchar(max).
CHAR_OCTET_LENGTH Zwraca maksymalną długość kolumny char lub binarnej. Zwraca 0, aby wskazać, że rozmiar jest nieograniczony.
SS_XML_SCHEMACOLLECTION_CATALOG_NAME Zwraca nazwę katalogu, w którym zdefiniowana jest nazwa kolekcji schematu XML. Jeśli nazwy katalogu nie można znaleźć, to ta zmienna zawiera pusty ciąg danych.
SS_XML_SCHEMACOLLECTION_SCHEMA_NAME Zwraca nazwę schematu, w którym zdefiniowana jest nazwa zbioru schematu XML. Jeśli nazwy schematu nie można znaleźć, to ta zmienna zawiera pusty ciąg znaków.
SS_XML_SCHEMACOLLECTION_NAME Zwraca nazwę kolekcji schematów XML. Jeśli nazwy nie można znaleźć, to ta zmienna zawiera pusty ciąg znaków.
SS_UDT_CATALOG_NAME Nazwa katalogu zawierającego UDT (typ zdefiniowany przez użytkownika).
SS_UDT_SCHEMA_NAME Nazwa schematu zawierającego UDT.
SS_UDT_ASSEMBLY_TYPE_NAME Nazwa UDT kwalifikowana dla zgromadzenia.

Dla UDT używa się istniejącej kolumny TYPE_NAME do wskazania nazwy UDT; dlatego nie należy dodawać dodatkowej kolumny do zbioru wyników SQLColumns lub SQLProcedureColumns. DATA_TYPE dla kolumny lub parametru UDT wynosi SQL_SS_UDT.

Dla UDT parametrów można użyć nowych specyficznych dla sterowników deskryptorów zdefiniowanych powyżej, aby uzyskać lub ustawić dodatkowe właściwości metadanych UDT, jeśli serwer zwraca lub wymaga tych informacji.

Gdy klient łączy się z SQL Server i wywołuje SQLColumns, użycie wartości NULL lub dzikich dla parametru wejściowego katalogu nie zwróci informacji z innych katalogów. Zamiast tego zwracane będą jedynie informacje o aktualnym katalogu. Klient może najpierw wywołać SQLTables, aby ustalić, w którym katalogu znajduje się pożądana tabela. Klient może następnie użyć tej wartości katalogowej parametru wejściowego katalogu w wywołaniu SQLColumns, aby pobrać informacje o kolumnach w tej tabeli.

SQLColumns i parametry Table-Valued

Zbiór wyników zwracany przez SQLColumns zależy od ustawienia SQL_SOPT_SS_NAME_SCOPE. Więcej informacji można znaleźć w SQLSetStmtAttr. Dodano następujące kolumny dla parametrów tabelowych:

Nazwa kolumny Typ danych Spis treści
SS_IS_COMPUTED Smallint Dla kolumny w TABLE_TYPE jest to SQL_TRUE, jeśli kolumna jest obliczoną kolumną; W przeciwnym razie SQL_FALSE.
SS_IS_IDENTITY Smallint SQL_TRUE jeśli kolumna jest kolumną tożsamości; W przeciwnym razie SQL_FALSE.

Więcej informacji o parametrach tabelowych można znaleźć w Table-Valued Parameters (ODBC).

Wsparcie SQLColumns dla ulepszonych funkcji dat i godzin

Aby uzyskać informacje o wartościach zwracanych dla typów dat/godzin, zobacz Metadane katalogu.

Aby uzyskać więcej informacji, zobacz ulepszenia daty i godziny (ODBC).

Obsługa SQLColumns dla dużych CLR UDT

SQLColumns obsługuje duże typy CLR zdefiniowane przez użytkownika (UDT). Aby uzyskać więcej informacji, zobacz large CLR User-Defined Types (ODBC).

SQLColumns obsługa rzadkich kolumn

Do zestawu wyników SQLColumns dodano dwie kolumny specyficzne dla SQL Server:

Nazwa kolumny Typ danych Description
SS_IS_SPARSE Smallint Jeśli kolumna jest rzadką, to jest to SQL_TRUE; W przeciwnym razie SQL_FALSE.
SS_IS_COLUMN_SET Smallint Jeśli kolumna jest kolumną column_set , to jest to SQL_TRUE; W przeciwnym razie SQL_FALSE.

Zgodnie ze specyfikacją ODBC, SS_IS_SPARSE i SS_IS_COLUMN_SET pojawiają się przed wszystkimi kolumnami specyficznymi dla sterowników, które zostały dodane do SQL Server wersji przed SQL Server 2008 (10.0.x), oraz po wszystkich kolumnach wymaganych przez ODBC.

Zbiór wyników zwracany przez SQLColumns zależy od ustawienia SQL_SOPT_SS_NAME_SCOPE. Więcej informacji można znaleźć w SQLSetStmtAttr.

Więcej informacji o kolumnach rzadkich w ODBC można znaleźć w artykule Sparse Columns Support (ODBC).