sp_columns (Transact-SQL)
Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure конечной точке аналитики платформы Аналитики Azure Synapse Analytics (PDW) в Microsoft Fabric Хранилище в Microsoft Fabric
Возвращает сведения о столбце для указанных объектов, которые могут быть запрошены в текущей среде.
Соглашения о синтаксисе Transact-SQL
Синтаксис
sp_columns
[ @table_name = ] N'table_name'
[ , [ @table_owner = ] N'table_owner' ]
[ , [ @table_qualifier = ] N'table_qualifier' ]
[ , [ @column_name = ] N'column_name' ]
[ , [ @ODBCVer = ] ODBCVer ]
[ ; ]
Аргументы
[ @table_name = ] N'table_name'
@table_name — nvarchar(384), без значения по умолчанию.
Имя объекта, используемого для возврата сведений каталога. @table_name может быть таблицей, представлением или другим объектом, который является столбцами, такими как функции с табличным значением. @table_name — nvarchar(384), без значения по умолчанию. Поиск совпадений по шаблону поддерживается.
[ @table_owner = ] N'table_owner'
Владелец объекта, который используется для возврата сведений каталога. @table_owner — nvarchar(384) с значением по умолчаниюNULL
. Поиск совпадений по шаблону поддерживается. Если @table_owner не указан, применяются правила видимости объектов по умолчанию базовых СУБД.
Если текущий пользователь является владельцем объекта с указанным именем, то возвращаются столбцы этого объекта. Если @table_owner не указан, а текущий пользователь не владеет объектом с указанным @table_name, sp_columns
ищет объект с указанным @table_name владельцем базы данных. Если таковой существует, возвращаются столбцы этого объекта.
[ @table_qualifier = ] N'table_qualifier'
@table_qualifier имеет имя sysname с значением по умолчаниюNULL
.
Имя квалификатора объекта. @table_qualifier имеет имя sysname с значением по умолчаниюNULL
. Различные продукты СУБД поддерживают трехкомпонентное именование объектов (<qualifier>.<owner>.<name>
). В SQL Server этот столбец представляет имя базы данных. В некоторых продуктах он представляет имя сервера в среде базы данных объекта.
[ @column_name = ] N'column_name'
Один столбец и используется, если требуется только один столбец сведений каталога. @column_name — nvarchar(384) с значением по умолчаниюNULL
. Если @column_name не указан, возвращаются все столбцы. В SQL Server @column_name представляет имя столбца, как указано в 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 |
SCALE |
smallint | Число цифр справа от десятичной запятой. |
RADIX |
smallint | Основание системы счисления числовых типов данных. |
NULLABLE |
smallint | Указывает возможность содержать значение NULL.1 = NULL возможно.0 = NOT NULL . |
REMARKS |
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, используемый расширенными хранимыми процедурами. Дополнительные сведения см. в разделе Типы данных. |
1 Дополнительные сведения см. в обзоре ODBC.
Разрешения
Требуется SELECT
и VIEW DEFINITION
разрешения на схему.
Замечания
sp_columns
соответствует требованиям для идентификаторов с разделителями. Дополнительные сведения см. в разделе "Идентификаторы базы данных".
Примеры
Примеры кода Transact-SQL в этой статье используют AdventureWorks2022
базу данных или AdventureWorksDW2022
пример базы данных, которую можно скачать с домашней страницы примеров и проектов сообщества Microsoft SQL Server.
Следующий пример возвращает данные столбца для указанной таблицы.
USE AdventureWorks2022;
GO
EXEC sp_columns
@table_name = N'Department',
@table_owner = N'HumanResources';
Примеры: Azure Synapse Analytics и система платформы аналитики (PDW)
Следующий пример возвращает данные столбца для указанной таблицы.
USE AdventureWorksDW2022;
GO
EXEC sp_columns
@table_name = N'DimEmployee',
@table_owner = N'dbo';