sp_columns (Transact-SQL)

Применимо к:SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure Управляемый экземпляр SQL Azure Конечная точка аналитики аналитики Synapse Analytics Analytics (PDW)SQL Analyticsв Microsoft FabricХранилище в Microsoft Fabric

Возвращает сведения о столбце для указанных объектов, которые могут быть запрошены в текущей среде.

Соглашения о синтаксисе Transact-SQL

Синтаксис

sp_columns [ @table_name = ] object  
     [ , [ @table_owner = ] owner ]   
     [ , [ @table_qualifier = ] qualifier ]   
     [ , [ @column_name = ] column ]   
     [ , [ @ODBCVer = ] ODBCVer ]  

Аргументы

[ @table_name = ] object Имя объекта, используемого для возврата сведений каталога. объект может быть таблицей, представлением или другим объектом, который содержит столбцы, такие как табличное значение функций. объект nvarchar (384) без значения по умолчанию. Поиск совпадений по шаблону поддерживается.

[ @table_owner = ] owner Является владельцем объекта, который используется для возврата сведений каталога. владелец nvarchar (384)с значением NULL по умолчанию. Поиск совпадений по шаблону поддерживается. Если владелец не указан, применяются правила видимости объектов по умолчанию для базовых СУБД.

Если текущий пользователь является владельцем объекта с указанным именем, то возвращаются столбцы этого объекта. Если владелец не указан, а текущий пользователь не владеет объектом с указанным объектом, sp_columns ищет объект с указанным объектом, принадлежащим владельцу базы данных. Если таковой существует, возвращаются столбцы этого объекта.

[ @table_qualifier = ] qualifier Имя квалификатора объекта. квалификаторsysname с значением NULL по умолчанию. Различные продукты СУБД поддерживают трехкомпонентное именование объектов (квалификатор).владелец.имя). В SQL Server этот столбец представляет имя базы данных. В некоторых продуктах он представляет имя сервера в среде базы данных объекта.

[ @column_name = ] column Является одним столбцом и используется, если требуется только один столбец сведений каталога. столбец имеет значение nvarchar(384) с значением NULL по умолчанию. Если столбец не указан, возвращаются все столбцы. В SQL Server столбец представляет имя столбца , указанное в таблице syscolumns . Поиск совпадений по шаблону поддерживается. Для максимальной совместимости клиент шлюза должен использовать только стандартное согласование SQL-92 (символы-шаблоны % и _).

[ @ODBCVer = ] ODBCVer Используется версия ODBC. ODBCVer имеет значение int с значением по умолчанию 2. Это значение соответствует ODBC версии 2. Допустимы значения 2 или 3. Различия в поведении между версиями 2 и 3 см. в спецификации ODBC SQLColumns .

Значения кода возврата

нет

Результирующие наборы

Хранимая процедура каталога sp_columns эквивалентна SQLColumns в ODBC. Возвращаемые результаты упорядочены по TABLE_QUALIFIER, TABLE_OWNER и TABLE_NAME.

Имя столбца Тип данных Description
TABLE_QUALIFIER sysname Имя квалификатора объекта. Это поле может иметь значение NULL.
TABLE_OWNER sysname Имя владельца объекта. Это поле всегда возвращает значение.
TABLE_NAME sysname Имя объекта. Это поле всегда возвращает значение.
COLUMN_NAME sysname Имя столбца для каждого столбца возвращаемого TABLE_NAME . Это поле всегда возвращает значение.
DATA_TYPE smallint Целочисленный код типа данных ODBC. Если этот тип данных не может быть сопоставлен с типом данных ODBC, возвращается значение NULL. Имя собственного типа данных возвращается в столбце TYPE_NAME .
TYPE_NAME sysname Тип данных в символьном представлении. Название типа предоставляется базовой СУБД.
PRECISION int Количество значащих цифр. Возвращаемое значение столбца PRECISION находится в базе 10.
LENGTH int Размер передачи данных.1
МАСШТАБ smallint Число цифр справа от десятичной запятой.
RADIX smallint Основание системы счисления числовых типов данных.
NULLABLE smallint Указывает возможность содержать значение NULL.

1 = значение NULL допустимо.

0 = значение NULL недопустимо.
ЗАМЕЧАНИЯ varchar(254) Это поле всегда возвращает значение NULL.
COLUMN_DEF nvarchar(4000) Значение столбца по умолчанию.
SQL_DATA_TYPE smallint Значение типа данных SQL в том же виде, что и в поле TYPE дескриптора. Этот столбец совпадает с столбцом DATA_TYPE, за исключением типов данных даты и времени и интервала SQL-92. Этот столбец всегда возвращает значение .
SQL_DATETIME_SUB smallint Код подтипа для типов данных datetime и SQL-92 интервала . Для других типов данных этот столбец возвращает значение NULL.
CHAR_OCTET_LENGTH int Максимальная длина столбца символьного или целочисленного типа в байтах. Для всех других типов данных этот столбец возвращает значение NULL.
ORDINAL_POSITION int Порядковый номер столбца в объекте. Первый столбец в объекте имеет порядковый номер 1. Этот столбец всегда возвращает значение .
IS_NULLABLE varchar(254) Допустимость значений NULL для столбца объекта. Допустимость значений NULL определяется в соответствии с правилами ISO. СУБД, совместимая с ISO SQL, не может вернуть пустую строку.

YES = Столбец может содержать значение NULL.

NO = Столбец не может содержать значения NULL.

Если допустимость значения NULL неизвестна, то этот столбец возвращает строку нулевой длины.

Значение, возвращаемое для этого столбца, отличается от значения, возвращаемого для столбца NULLABLE .
SS_DATA_TYPE tinyint Тип данных SQL Server, используемый расширенными хранимыми процедурами. Дополнительные сведения см. в разделе Типы данных (Transact-SQL).

1 Дополнительные сведения см. в документации по Microsoft ODBC.

Разрешения

Требуется разрешение SELECT и VIEW DEFINITION для схемы.

Замечания

sp_columns соответствует требованиям для идентификаторов с разделителями. Дополнительные сведения см. в разделе Идентификаторы баз данных.

Примеры

Следующий пример возвращает данные столбца для указанной таблицы.

USE AdventureWorks2022;  
GO  
EXEC sp_columns @table_name = N'Department',  
   @table_owner = N'HumanResources';  

Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)

Следующий пример возвращает данные столбца для указанной таблицы.

-- Uses AdventureWorks  
  
EXEC sp_columns @table_name = N'DimEmployee',  
   @table_owner = N'dbo';  

См. также

sp_tables (Transact-SQL)
Хранимые процедуры каталога (Transact-SQL)
Системные хранимые процедуры (Transact-SQL)