Udostępnij za pomocą


sp_columns (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceAzure Synapse AnalyticsAnalytics Platform System (PDW)Punkt końcowy analizy SQL w usłudze Microsoft FabricHurtownia danych w usłudze Microsoft FabricBaza danych SQL w usłudze Microsoft Fabric

Zwraca informacje kolumnowe dla określonych obiektów, które można zapytać w bieżącym środowisku.

Transact-SQL konwencje składni

Składnia

sp_columns
    [ @table_name = ] N'table_name'
    [ , [ @table_owner = ] N'table_owner' ]
    [ , [ @table_qualifier = ] N'table_qualifier' ]
    [ , [ @column_name = ] N'column_name' ]
    [ , [ @ODBCVer = ] ODBCVer ]
[ ; ]

Arguments

[ @table_name = ] N'table_name'

@table_name to nvarchar(384), bez domyślnego statusu.

Nazwa obiektu używanego do zwracania informacji katalogowych. @table_name może być tabelą, widokiem lub innym obiektem składającym się z kolumn, takich jak funkcje tabelowe. @table_name to nvarchar(384), bez domyślnego statusu. Obsługiwane jest dopasowanie wzorców dzikich.

[ @table_owner = ] N'table_owner'

Właściciel obiektu używany do zwracania informacji katalogowych. @table_owner to nvarchar(384), z domyślnym obciążeniem NULL. Obsługiwane jest dopasowanie wzorców dzikich. Jeśli @table_owner nie jest określona, domyślne reguły widoczności obiektów bazowego DBMS są zastosowane.

Jeśli aktualny użytkownik posiada obiekt o określonej nazwie, kolumny tego obiektu są zwracane. Jeśli @table_owner nie jest określone, a obecny użytkownik nie posiada obiektu o określonej @table_name, sp_columns szukaj obiektu o określonej @table_name należącej do właściciela bazy danych. Jeśli taki istnieje, kolumny tego obiektu są zwracane.

[ @table_qualifier = ] N'table_qualifier'

@table_qualifier to nazwa systemu, z domyślnym obciążeniem NULL.

Nazwa kwalifikatora obiektu. @table_qualifier to nazwa systemu, z domyślnym obciążeniem NULL. Różne produkty DBMS obsługują trzyczęściowe nazewnictwo obiektów (<qualifier>.<owner>.<name>). W SQL Server ta kolumna oznacza nazwę bazy danych. W niektórych produktach reprezentuje nazwę serwera środowiska bazodanowego obiektu.

[ @column_name = ] N'column_name'

Pojedyncza kolumna i jest używana, gdy potrzebna jest tylko jedna kolumna informacji katalogowych. @column_name to nvarchar(384), z domyślnym obciążeniem NULL. Jeśli @column_name nie jest określone, wszystkie kolumny są zwracane. W SQL Server @column_name reprezentuje nazwę kolumny podaną w tabeli syscolumns . Obsługiwane jest dopasowanie wzorców dzikich. Dla maksymalnej interoperacyjności, klient bramy powinien przyjmować jedynie dopasowanie wzorców standardowych SQL-92 (znaki % i _ znaki dzikie).

[ @ODBCVer = ] ODBCVer

Wersja ODBC, która jest używana. @ODBCVer jest int, z domyślnym obciążeniem 2. To wskazuje na wersję ODBC 2. Prawidłowe wartości to 2 lub 3. Różnice w zachowaniu między wersjami 2 i 3 można znaleźć w specyfikacji ODBC SQLColumns .

Zwracanie wartości kodu

Żaden.

Zestaw wyników

Procedura sp_columns katalogowa jest równoważna procedurze SQLColumns w ODBC. Wyniki zwracane są uporządkowane przez TABLE_QUALIFIER, TABLE_OWNER, oraz TABLE_NAME.

Nazwa kolumny Typ danych Description
TABLE_QUALIFIER sysname Nazwa kwalifikatora obiektu. To ciało może być .NULL
TABLE_OWNER sysname Nazwa właściciela obiektu. To pole zawsze zwraca wartość.
TABLE_NAME sysname Nazwa obiektu. To pole zawsze zwraca wartość.
COLUMN_NAME sysname Nazwa kolumny, dla każdej kolumny zwróconej kolumny TABLE_NAME . To pole zawsze zwraca wartość.
DATA_TYPE smallint Kod całkowitoliczbowy dla typu danych ODBC. Jeśli tego typu danych nie można odwzorować na typ ODBC, to jest NULL. Natywna nazwa typu danych jest zwracana w kolumnie TYPE_NAME .
TYPE_NAME sysname Ciąg reprezentujący typ danych. Bazowy DBMS prezentuje tę nazwę typu danych.
PRECISION int Liczba cyfr znaczących. Wartość zwrotu dla kolumny PRECISION znajduje się w bazie 10.
LENGTH int Rozmiar transferu danych. 1
SCALE smallint Liczba cyfr po prawej stronie przecinka.
RADIX smallint Podstawa dla numerycznych typów danych.
NULLABLE smallint Określa możliwość zerowania.

1 = NULL jest możliwe.
0= NIE .NULL
REMARKS varchar(254) To pole zawsze zwraca NULL.
COLUMN_DEF nvarchar(4000) Wartość domyślna kolumny.
SQL_DATA_TYPE smallint Wartość typu danych SQL tak, jak pojawia się w polu TYPE deskryptora. Ta kolumna jest taka sama jak kolumna DATA_TYPE , z wyjątkiem daty, czasu i typów interwałów SQL-92. Ta kolumna zawsze zwraca wartość.
SQL_DATETIME_SUB smallint Kod podtypu dla datowych i interwałowych typów SQL-92. Dla innych typów danych ta kolumna zwraca NULL.
CHAR_OCTET_LENGTH int Maksymalna długość w bajtach kolumny znaku lub całkowitoliczbowego typu danych. Dla wszystkich pozostałych typów danych ta kolumna zwraca NULL.
ORDINAL_POSITION int Pozycja porządkowa kolumny w obiekcie. Pierwsza kolumna w obiekcie to 1. Ta kolumna zawsze zwraca wartość.
IS_NULLABLE varchar(254) Nieważność kolumny w obiekcie. Stosuje się zasady ISO w celu określenia nieważności. DBMS zgodny z ISO SQL nie może zwrócić pustego ciągu znaków.

YES = Kolumna może zawierać NULL.
NO = Kolumna nie może zawierać NULL.

Ta kolumna zwraca ciąg o zerowej długości, jeśli nieznana jest nieważność.

Wartość zwracana dla tej kolumny różni się od wartości zwracanej dla kolumny NULLABLE .
SS_DATA_TYPE tinyint Typ danych SQL Server używany przez rozszerzone procedury przechowywane. Aby uzyskać więcej informacji, zobacz Typy danych.

1 Więcej informacji można znaleźć w przeglądzie ODBC.

Permissions

Wymagania SELECT i VIEW DEFINITION uprawnienia dotyczące schematu.

Uwagi

sp_columns spełnia wymagania dotyczące identyfikatorów delimitowanych. Aby uzyskać więcej informacji, zobacz Identyfikatory bazy danych.

Przykłady

Przykłady kodu w tym artykule korzystają z przykładowej bazy danych AdventureWorks2025 lub AdventureWorksDW2025, którą można pobrać ze strony głównej Przykładów programu Microsoft SQL Server i projektów społeczności.

Poniższy przykład zwraca informacje kolumnowe dla określonej tabeli.

USE AdventureWorks2022;
GO

EXECUTE sp_columns
    @table_name = N'Department',
    @table_owner = N'HumanResources';

Przykłady: Azure Synapse Analytics and Analytics Platform System (PDW)

Poniższy przykład zwraca informacje kolumnowe dla określonej tabeli.

USE AdventureWorksDW2022;
GO

EXECUTE sp_columns
    @table_name = N'DimEmployee',
    @table_owner = N'dbo';