sp_addtype (Transact-SQL)

Применимо к:SQL Server

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

Внимание

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

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

Синтаксис

sp_addtype
    [ @typename = ] N'typename'
    , [ @phystype = ] N'phystype'
    [ , [ @nulltype = ] 'nulltype' ]
    [ , [ @owner = ] N'owner' ]
[ ; ]

Аргументы

[ @typename = ] N'typename'

@typename — sysname без значения по умолчанию.

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

[ @phystype = ] N'phystype'

Предоставленный физический или SQL Server тип данных, на котором основан псевдоним. @phystype — sysname, без значения по умолчанию и может быть одним из следующих значений:

  • bigint, int, smallint и tinyint
  • binary, varbinary(n)и image
  • bit
  • char(n), nchar(n), varchar(n), nvarchar(n), **text и ntext
  • datetime и smalldatetime
  • десятичные, P и числовые(s, P)
  • float и real
  • деньги и небольшие деньги
  • sql_variant
  • uniqueidentifier

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

  • n

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

  • P

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

  • s

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

[ @nulltype = ] 'nulltype'

Указывает, как псевдоним типа данных обрабатывает значения NULL. @nulltype — varchar(8), значение по умолчанию NULLи должно быть заключено в одинарные кавычки ('NULL'или'NOT NULL''NONULL').

Если @nulltype не определен явным образом, для него задано текущее значение NULL по умолчанию. Используйте системную GETANSINULL функцию для определения текущей допустимости null по умолчанию. Это можно изменить с помощью инструкции SET или ALTER DATABASE. Возможность иметь значения NULL необходимо задавать в явной форме. Если @phystype бит, а @nulltype не указан, значение по умолчанию равноNOT NULL.

Примечание.

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

[ @owner = ] N'owner'

Указано только в ознакомительных целях. Не поддерживается. Совместимость с будущими версиями не гарантируется.

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

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

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

Нет.

Замечания

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

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

Типы данных псевдонима наследуют параметры сортировки базы данных по умолчанию. Параметры сортировки столбцов и переменных типов псевдонимов определяются в инструкциях Transact-SQL CREATE TABLEALTER TABLEи DECLARE @<local_variable> инструкциях. Изменение сортировки по умолчанию базы данных применяется только к новым столбцам и переменным типа; Он не изменяет параметры сортировки существующих.

Внимание

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

Типы данных псевдонима нельзя определить с помощью метки времени SQL Server, таблицы, 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

B. Создание типа данных псевдонима, который позволяет использовать значения NULL

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

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

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

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

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