sys.sp_addtype (Transact-SQL)

Dotyczy:SQL Server

Tworzy typ danych alias.

Ważna

Ta funkcja zostanie usunięta w przyszłej wersji programu SQL Server. Unikaj używania tej funkcji w nowych pracach programistycznych i zaplanuj modyfikowanie aplikacji, które obecnie korzystają z tej funkcji. Użyj CREATE TYPE zamiast tego.

Transact-SQL konwencje składni

Składnia

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

Arguments

[ @typename = ] N'typename'

@typename to sysname, bez domyślnego zapisu.

Nazwa typu danych alias. Nazwy typów danych aliasów muszą spełniać zasady dotyczące identyfikatorów i być unikalne w każdej bazie danych. typ to sysname, bez domyślnego ustawienia.

[ @phystype = ] N'fizytyp'

Fizyczny, czyli dostarczony przez SQL Server, typ danych, na którym oparty jest typ danych alias. @phystype to nazwa systemu, bez domyślnego dobra, i może być jedną z następujących wartości:

  • bigint, int, smallint i tinyint
  • binarny, varbinary(n) i obraz
  • bit
  • char(n), nchar(n), varchar(n), nvarchar(n), **text i ntext
  • Datetime (data i czas) i SmallDatetime (mała data i czas)
  • dziesiętne(y, P) i liczbowe(y, P)
  • liczba zmiennoprzecinkowa i rzeczywista
  • pieniądze i małe pieniądze
  • sql_variant
  • uniqueidentifier

Cudzysłowy są wymagane wokół wszystkich parametrów zawierających osadzone puste space lub znaki interpunkcyjne. Więcej informacji o dostępnych typach danych można znaleźć w artykule Typy danych.

  • n

    Nieujemna liczba całkowita wskazująca długość wybranego typu danych.

  • P

    Nieujemna liczba całkowita, która wskazuje maksymalną liczbę cyfr dziesiętnych, które można przechowywać, zarówno po lewej, jak i prawej stronie przecinka. Więcej informacji można znaleźć w artykule dziesiętny i liczbowy.

  • s

    Nieujemna liczba całkowita wskazująca maksymalną liczbę cyfr dziesiętnych, które można zapisać po prawej stronie przecinka dziesiętnego, i musi być mniejsza lub równa precyzji. Więcej informacji można znaleźć w artykule dziesiętny i liczbowy.

[ @nulltype = ] 'nulltype'

Wskazuje, w jaki sposób typ danych aliasu obsługuje wartości null. @nulltype to varchar(8), z domyślnym , NULLi musi być otoczony pojedynczymi cudzysłowami ('NULL', 'NOT NULL', lub 'NONULL').

Jeśli @nulltype nie jest wyraźnie zdefiniowane, ustawia się na aktualną domyślną nulowalność. Użyj funkcji systemowej, GETANSINULL aby określić aktualną domyślną nieważność. Można to dostosować, używając sformułowania SET lub ALTER DATABASE. Nieważność powinna być wyraźnie zdefiniowana. Jeśli @phystype jest bit, a @nulltype nie jest określone, domyślne jest .NOT NULL

Note

Parametr @nulltype definiuje jedynie domyślną nieważność dla tego typu danych. Jeśli nulowalność jest wyraźnie zdefiniowana podczas użycia typu danych aliasu podczas tworzenia tabeli, ma ona pierwszeństwo przed zdefiniowaną nulowalnością. Aby uzyskać więcej informacji, zobacz ALTER TABLE i CREATE TABLE.

[ @owner = ] N'właściciel'

Zidentyfikowane tylko do celów informacyjnych. Niewspierane. Zgodność w przyszłości nie jest gwarantowana.

Zwracanie wartości kodu

0 (powodzenie) lub 1 (niepowodzenie).

Zestaw wyników

Żaden.

Remarks

Nazwa typu danych aliasu musi być unikalna w bazie danych, ale typy danych aliasów o różnych nazwach mogą mieć tę samą definicję.

Wykonanie sp_addtype tworzy typ danych alias, który pojawia się w widoku sys.types katalogu dla konkretnej bazy danych. Jeśli typ danych aliasu musi być dostępny we wszystkich nowych bazach danych zdefiniowanych przez użytkownika, dodaj go do model. Po utworzeniu typu danych aliasu możesz użyć go w lub CREATE TABLEALTER TABLE, a także przypisać domyślne i reguły do tego typu alias. Wszystkie skalarne typy danych alias, które są tworzone przez użyciem, sp_addtype znajdują się w dbo schemacie.

Typy danych Alias dziedziczą domyślną sortację bazy danych. Kolacje kolumn i zmiennych typów alias są definiowane w Transact-SQLCREATE TABLEALTER TABLE, , i DECLARE @<local_variable> instrukcjach. Zmiana domyślnej sortacji bazy danych dotyczy tylko nowych kolumn i zmiennych tego typu; Nie zmienia to zestawienia istniejących listów.

Ważna

Dla celów kompatybilności wstecznej rola publicznej bazy danych automatycznie otrzymuje REFERENCES uprawnienia do typów danych aliasów tworzonych za pomocą .sp_addtype Należy zauważyć, że gdy typy danych aliasów są tworzone przez użycie CREATE TYPE instrukcji zamiast , sp_addtypenie następuje automatyczne przyznanie.

Typów danych Alias nie można zdefiniować za pomocą znacznika czasu SQL Server, tabeli, xml, varchar(max),nvarchar(max) lub varbinary(max).

Permissions

Wymaga członkostwa w roli db_owner lub db_ddladmin stałej bazie danych.

Examples

A. Stwórz typ danych alias, który nie pozwala na wartości zerowe

Poniższy przykład tworzy typ danych aliasu o nazwie ssn (numer ubezpieczenia społecznego), który opiera się na typie danych varchar dostarczonym przez SQL Server. Typ ssn danych jest używany dla kolumn zawierających 11-cyfrowe numery ubezpieczenia społecznego ().999-99-9999 Kolumna nie może być .NULL

varchar(11) jest otoczony pojedynczymi cudzysłowami, ponieważ zawiera interpunkcję (nawiasy).

USE master;
GO

EXECUTE sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO

B. Stwórz typ danych alias, który pozwala na wartości zerowe

Poniższy przykład tworzy typ danych aliasu (oparty na datetime) o nazwie, birthday który pozwala na wartości zerowe.

USE master;
GO

EXECUTE sp_addtype birthday, datetime, 'NULL';

C. Stwórz dodatkowe typy danych aliasów

Poniższy przykład tworzy dwa kolejne typy danych alias, telephone oraz fax, zarówno dla krajowych, jak i międzynarodowych numerów telefonicznych i faksowych.

USE master;
GO

EXECUTE sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO

EXECUTE sp_addtype fax, 'varchar(24)', 'NULL';
GO