Поделиться через


sp_help (Transact-SQL)

Область применения: SQL Server База данных SQL Azure Управляемый экземпляр SQL Azure

Сообщает сведения об объекте базы данных (любом объекте, указанном в представлении совместимости), определяемом пользователем типе sys.sysobjects данных или типе данных.

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

Синтаксис

sp_help [ [ @objname = ] N'objname' ]
[ ; ]

Аргументы

[ @objname = ] N'objname'

Имя любого объекта или sys.sysobjects любого определяемого пользователем типа данных в sys.systypes таблице. @objname — nvarchar(776) с значением по умолчаниюNULL. Имена баз данных недопустимы. Два или три имена частей могут быть разделены, например Person.AddressType или [Person].[AddressType].

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

0 (успешно) или 1 (сбой).

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

Результирующие наборы, возвращаемые, зависят от того, указан ли @name , когда он указан, и какой объект базы данных он есть.

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

    Имя столбца Тип данных Description
    Name nvarchar(128) Наименование объекта
    Owner nvarchar(128) Владелец объекта (субъект базы данных, принадлежащий объекту. По умолчанию владелец схемы, содержащей объект.)
    Object_type nvarchar(31) Тип объекта
  2. Если @name — это тип данных SQL Server или определяемый пользователем тип данных, sp_help возвращается этот результирующий набор.

    Имя столбца Тип данных Description
    Type_name nvarchar(128) Имя типа данных.
    Storage_type nvarchar(128) Имя типа SQL Server.
    Length smallint Физическая длина типа данных (в байтах).
    Prec int Точность (общее количество знаков).
    Scale int Количество знаков справа от десятичной запятой.
    Nullable varchar(35) Указывает, разрешены ли NULL значения: Yes или No.
    Default_name nvarchar(128) Имя значения по умолчанию, привязанного к этому типу.

    NULL = значение по умолчанию не привязано.
    Rule_name nvarchar(128) Имя правила, привязанного к этому типу.

    NULL = значение по умолчанию не привязано.
    Collation sysname Параметры сортировки для типа данных. NULL для типов данных, отличных от символов.
  3. Если @name является любым объектом базы данных, отличным от типа данных, возвращает этот результирующий набор, sp_help а также дополнительные результирующие наборы на основе указанного типа объекта.

    Имя столбца Тип данных Description
    Name nvarchar(128) Имя таблицы
    Owner nvarchar(128) Владелец таблицы
    Type nvarchar(31) Тип таблицы
    Created_datetime datetime Дата создания таблицы

    В зависимости от указанного sp_help объекта базы данных возвращает дополнительные результирующие наборы.

    Если @name является системной таблицей, пользовательской таблицей или представлением, sp_help возвращает следующие результирующие наборы. Однако результирующий набор, описывающий расположение файла данных в группе файлов, не возвращается для представления.

    • Следующий результирующий набор также возвращается для объектов столбцов:

      Имя столбца Тип данных Description
      Column_name nvarchar(128) Имя столбца.
      Type nvarchar(128) Тип данных столбца.
      Computed varchar(35) Указывает, вычисляются ли значения в столбце: Yes или No.
      Length int Длина столбца в байтах.

      Примечание. Если тип данных столбца является большим типом значения (varchar(max),nvarchar(max), varbinary(max)или xml), значение отображается как -1.
      Prec char(5) Точность столбца.
      Scale char(5) Масштаб столбца.
      Nullable varchar(35) Указывает, разрешены ли NULL значения в столбце: Yes или No.
      TrimTrailingBlanks varchar(35) Указывает, усекать ли завершающие пробелы или нет. Возвращает значение Yes или No.
      FixedLenNullInSource varchar(35) Только для обратной совместимости.
      Collation sysname Параметры сортировки столбца. NULL для типов данных noncharacter.
    • Следующий результирующий набор также возвращается в столбцах удостоверений:

      Имя столбца Тип данных Description
      Identity nvarchar(128) Имя столбца, чей тип данных объявлен удостоверением.
      Seed numeric Стартовое значение для столбца идентификаторов.
      Increment numeric Шаг прироста, который следует использовать для значений в этом столбце.
      Not For Replication int IDENTITY свойство не применяется при входе репликации, например sqlrepl, вставляет данные в таблицу:

      1 = True
      0 = False
    • Следующий результирующий набор также возвращается для столбцов:

      Имя столбца Тип данных Description
      RowGuidCol sysname Имя столбца глобального уникального идентификатора.
    • Следующий результирующий набор также возвращается в файловых группах:

      Имя столбца Тип данных Description
      Data_located_on_filegroup nvarchar(128) Файловая группа, в которой находятся данные: Primaryили SecondaryTransaction Log.
    • Следующий результирующий набор также возвращается для индексов:

      Имя столбца Тип данных Description
      index_name sysname Имя индекса.
      Index_description varchar(210) Описание индекса.
      index_keys nvarchar(2078) Имена столбцов, на основе которых построен индекс. Возвращает NULL индексы columnstore, оптимизированные для памяти.
    • Следующий результирующий набор также возвращается по ограничениям:

      Имя столбца Тип данных Description
      constraint_type nvarchar(146) Тип ограничения.
      constraint_name nvarchar(128) Имя ограничения.
      delete_action nvarchar(9) Указывает, является ли DELETE действие одним из NO_ACTION, , CASCADEили SET_NULLSET_DEFAULTN/A.

      Применимо только для ограничений FOREIGN KEY.
      update_action nvarchar(9) Указывает, является ли UPDATE действие одним из NO_ACTION, , CASCADEили SET_NULLSET_DEFAULTN/A.

      Применимо только к FOREIGN KEY ограничениям.
      status_enabled varchar(8) Указывает, включено ли ограничение: Enabled, Disabledили N/A.

      Применимо только к CHECK ограничениям и FOREIGN KEY ограничениям.
      status_for_replication varchar(19) Указывает, предназначено ли ограничение для репликации.

      Применимо только к CHECK ограничениям и FOREIGN KEY ограничениям.
      constraint_keys nvarchar(2078) Имена столбцов, составляющих ограничение, или, в случае со значениями по умолчанию и правилами, текст, определяющий значение по умолчанию или правило.
    • Следующий результирующий набор также возвращается для объектов ссылки:

      Имя столбца Тип данных Description
      Table is referenced by nvarchar(516) Указывает другие объекты базы данных, которые ссылаются на таблицу.
    • Следующий результирующий набор также возвращается для хранимых процедур, функций или расширенных хранимых процедур.

      Имя столбца Тип данных Description
      Parameter_name nvarchar(128) Имя аргумента хранимой процедуры.
      Type nvarchar(128) Тип данных аргумента хранимой процедуры.
      Length smallint Максимальная физическая длина хранилища, в байтах.
      Prec int Точность или общее количество знаков.
      Scale int Число цифр справа от десятичной запятой.
      Param_order smallint Порядок аргумента.

Замечания

Процедура sp_help ищет объект только в текущей базе данных.

Если @name не указан, sp_help перечисляет имена объектов, владельцев и типы объектов для всех объектов в текущей базе данных. sp_helptrigger предоставляет сведения об триггерах.

sp_help предоставляет только упорядоченные столбцы индекса; Таким образом, он не предоставляет сведения о XML-индексах или пространственных индексах.

Разрешения

Необходимо быть членом роли public. Пользователь должен иметь по крайней мере одно разрешение на @objname. Чтобы просмотреть ключи ограничений столбца, значения по умолчанию или правила, необходимо иметь VIEW DEFINITION разрешение на таблицу.

Примеры

Примеры кода Transact-SQL в этой статье используют AdventureWorks2022 базу данных или AdventureWorksDW2022 пример базы данных, которую можно скачать с домашней страницы примеров и проектов сообщества Microsoft SQL Server.

А. Возврат сведений обо всех объектах

В нижеследующем примере приводится информация о каждом объекте в базе данных master.

USE master;
GO
EXEC sp_help;
GO

B. Возврат сведений об одном объекте

В нижеследующем примере отображаются сведения о таблице Person.Person.

USE AdventureWorks2022;
GO
EXEC sp_help 'Person.Person';
GO