sp_addtype (Transact-SQL)

Создает псевдоним типа данных.

Важное примечаниеВажно!

В будущей версии Microsoft SQL Server этот компонент будет удален. Избегайте использования этого компонента в новых разработках и запланируйте изменение существующих приложений, в которых он применяется. Вместо этого используйте инструкцию CREATE TYPE.

Значок ссылки на раздел Синтаксические обозначения Transact-SQL

Синтаксис

sp_addtype [ @typename = ] type, 
    [ @phystype = ] system_data_type 
    [ , [ @nulltype = ] 'null_type' ] ;

Аргументы

  • [ @typename= ] type
    Имя типа данных псевдонима. Имена псевдонимов типа данных должны соответствовать правилам для идентификаторов и быть уникальными в каждой базе данных. Аргумент type имеет тип sysname и не имеет значения по умолчанию.

  • [ @phystype=] system_data_type
    Физический (предоставляемый SQL Server) тип данных, на котором основан тип данных псевдонима. Аргумент system_data_type имеет тип sysname и не имеет значения по умолчанию, и он может принимать одно из следующих значений:

    bigint

    binary(n)

    bit

    char(n)

    datetime

    decimal

    float

    image

    int

    money

    nchar(n)

    ntext

    numeric

    nvarchar(n)

    real

    smalldatetime

    smallint

    smallmoney

    sql_variant

    text

    tinyint

    uniqueidentifier

    varbinary(n)

    varchar(n)

    Кавычки необходимы для всех параметров, в которых содержатся начальные пробелы или знаки пунктуации. Дополнительные сведения о доступных типах данных см. в разделе Типы данных (Transact-SQL).

  • n
    Неотрицательное целое число, которое показывает длину выбранного типа данных.

  • P
    Неотрицательное целое число, показывающее максимальное количество десятичных разрядов числа (как слева, так и справа от десятичного разделителя). Дополнительные сведения см. в разделе decimal и numeric (Transact-SQL).

  • s
    Неотрицательное целое число, показывающее максимальное количество десятичных разрядов числа (справа от десятичного разделителя), которое не должно превышать точность. Дополнительные сведения см. в разделе decimal и numeric (Transact-SQL).

  • [ @nulltype = ] 'null_type'
    Указывает, как псевдоним типа данных обрабатывает значения NULL. Аргумент null_type имеет тип varchar(8) со значением по умолчанию NULL и должен быть заключен в одинарные кавычки ('NULL', 'NOT NULL' или 'NONULL'). Если аргумент null_type не указывается в явном виде в процедуре sp_addtype, ему присваивается текущее значение параметра возможности по умолчанию иметь значения NULL. Для определения текущего значения параметра возможности по умолчанию иметь значения NULL используйте системную функцию NULLGETANSINULL. Его можно настраивать с помощью инструкции SET или ALTER DATABASE. Возможность иметь значения NULL необходимо задавать в явной форме. Если аргумент @phystype имеет тип bit, а аргумент @nulltype не указывается, по умолчанию используется значение NOT NULL.

    ПримечаниеПримечание

    Аргумент null_type указывает возможность по умолчанию иметь значения NULL только для этого типа данных. Если возможность иметь значения NULL явно указывается для типа данных псевдонима при создании таблицы, эта настройка имеет приоритет над возможностью по умолчанию иметь значения NULL. Дополнительные сведения см. в разделах ALTER TABLE (Transact-SQL) и Инструкция CREATE TABLE (Transact-SQL).

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

0 (успешное завершение) или 1 (неуспешное завершение)

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

Нет

Замечания

Имя типа данных псевдонима должно быть уникальным в базе данных, но типы данных псевдонима с различными именами могут иметь одно определение.

Выполнение процедуры sp_addtype позволяет создать тип данных псевдонима, отображаемый в представлении каталога sys.types для конкретной базы данных. Если тип данных псевдонима должен быть доступен в новых пользовательских базах данных, добавьте его в модель. После создания типа данных псевдонима его можно использовать в инструкциях CREATE TABLE и ALTER TABLE, а также привязывать значения по умолчанию и правила к нему. Все скалярные типы данных псевдонима, созданные процедурой sp_addtype, содержатся в схеме dbo.

Типы данных псевдонима наследуют параметры сортировки базы данных по умолчанию. Параметры сортировки столбцов и переменных типов псевдонима задаются в инструкциях Transact-SQL CREATE TABLE, ALTER TABLE и DECLARE @local\_variable. Изменение параметров сортировки по умолчанию базы данных применяется только к новым столбцам и переменным типа и не изменяет параметры сортировки существующих столбцов и переменных.

Примечание по безопасностиПримечание по безопасности

Роли public автоматически предоставляется разрешение REFERENCES для типов данных псевдонима, созданных процедурой sp_addtype, в целях обратной совместимости. Обратите внимание на то, что если типы данных псевдонима созданы инструкцией CREATE TYPE, а не процедурой sp_addtype, то это разрешение автоматически не предоставляется.

Типы данных псевдонима нельзя задавать с помощью типов данных SQL Server timestamp, table, xml, varchar(max), nvarchar(max) и varbinary(max).

Разрешения

Необходимо членство в предопределенной роли базы данных db_owner или db_ddladmin.

Примеры

А.Создание псевдонима типа данных, не поддерживающего значения NULL

В следующем примере создается тип данных псевдонима с именем ssn (номер карточки социального страхования) на основе типа данных varchar, предоставляемого SQL Server. Тип данных ssn используется для столбцов, хранящих номера карточек социального страхования, состоящих из 11 разрядов (999-99-9999). Эти столбцы не могут иметь значение NULL.

Обратите внимание на то, что тип varchar(11) заключен в одинарные кавычки, поскольку содержит знак пунктуации (скобки).

USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO

Б.Создание псевдонима типа данных, поддерживающего значения NULL

В следующем примере создается тип данных псевдонима (на основе datetime) с именем birthday, который поддерживает значения NULL.

USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';

В.Создание дополнительных псевдонимов типов данных

В следующем примере создается два дополнительных типа данных псевдонима, telephone и fax, служащих для внутренних и международных номеров телефонов и факсов.

USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO

См. также

Справочник

Хранимые процедуры ядра СУБД (Transact-SQL)

CREATE TYPE (Transact-SQL)

CREATE DEFAULT (Transact-SQL)

CREATE RULE (Transact-SQL)

sp_bindefault (Transact-SQL)

sp_bindrule (Transact-SQL)

sp_droptype (Transact-SQL)

sp_rename (Transact-SQL)

Хранимая процедура sp_unbindefault (Transact-SQL)

sp_unbindrule (Transact-SQL)

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