Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Vytvoří alias datový typ.
Important
Tato funkce bude odebrána v budoucí verzi SQL Serveru. Nepoužívejte tuto funkci v nové vývojové práci a naplánujte úpravu aplikací, které tuto funkci aktuálně používají. Místo toho použijte CREATE TYPE.
Syntax
sys.sp_addtype
[ @typename = ] N'typename'
, [ @phystype = ] N'phystype'
[ , [ @nulltype = ] 'nulltype' ]
[ , [ @owner = ] N'owner' ]
[ ; ]
Arguments
[ @typename = ] N'typename'
@typename je sysname, bez výchozího nastavení.
Název datového typu aliasu. Názvy datových typů aliasů musí dodržovat pravidla identifikátorů a musí být jedinečné v každé databázi. Typ je sysname, bez výchozího nastavení.
[ @phystype = ] N'phystype'
Fyzický, tedy SQL Server dodaný datový typ, na kterém je alias datový typ založen. @phystype je sysname bez výchozího nastavení a může být jednou z těchto hodnot:
- bigint, int, smallint a tinyint
- binární, varbinární(n) a image
- bit
- char(n), nchar(n), varchar(n), nvarchar(n), **text a ntext
- datetime a smalldatetime
- desetinné(y, P) a číselné(y, P)
- float a real
- peníze a malé peníze
- sql_variant
- uniqueidentifier
Uvozovky jsou povinné kolem všech parametrů, které obsahují vložené prázdné mezery nebo interpunkční znaménka. Pro více informací o dostupných datových typech viz Datové typy.
n
Nezáporné celé číslo, které udává délku zvoleného datového typu.
P
Nezáporné celé číslo, které ukazuje maximální celkový počet desetinných číslic, jež lze uložit, a to jak vlevo, tak napravo od desetinné čárky. Pro více informací viz desetinné a číselné číslo.
s
Nezáporné celé číslo, které ukazuje maximální počet desetinných číslic, jež lze uložit napravo od desetinné čárky, a musí být menší nebo rovno přesnosti. Pro více informací viz desetinné a číselné číslo.
[ @nulltype = ] 'nulltype'
Označuje, jak alias datový typ zpracovává nulové hodnoty.
@nulltype je varchar(8) s výchozím , NULLa musí být uzavřen do jednotlivých uvozovek ('NULL', 'NOT NULL', nebo 'NONULL').
Pokud @nulltype není explicitně definováno, nastaví se na aktuální výchozí nulovatelnost. Použijte systémovou GETANSINULL funkci k určení aktuální výchozí nulability. To lze upravit pomocí SET tvrzení nebo ALTER DATABASE. Nulovatelnost by měla být explicitně definována. Pokud je @phystypebit a @nulltype není specifikován, výchozí je NOT NULL.
Note
Parametr @nulltype definuje pouze výchozí nulovatelnost pro tento datový typ. Pokud je neplatnost explicitně definována při použití aliasu při vytváření tabulky, má přednost před definovanou nulovatostí. Pro více informací se podívejte na ALTER TABLE a CREATE TABLE.
[ @owner = ] N'majitel'
Určeno pouze pro informační účely. Není podporováno. Budoucí kompatibilita není zaručena.
Hodnoty návratového kódu
0 (úspěch) nebo 1 (selhání).
Sada výsledků
Žádné.
Remarks
Název datového typu aliasu musí být v databázi jedinečný, ale datové typy aliasů s různými názvy mohou mít stejnou definici.
Vykonávání sp_addtype vytvoří alias datový typ, který se objeví v katalogovém sys.types zobrazení pro konkrétní databázi. Pokud musí být alias datový typ dostupný ve všech nových uživatelsky definovaných databázích, přidejte jej do model. Po vytvoření datového typu aliasu jej můžete použít v CREATE TABLE nebo ALTER TABLE, a také nastavit výchozí hodnoty a pravidla s datovým typem aliasu. Všechny skalární alias datové typy, které jsou vytvořeny pomocí používa, sp_addtype jsou obsaženy ve schématu dbo .
Alias datové typy dědí výchozí třídění databáze. Kolace sloupců a proměnných typů aliasů jsou definovány ve Transact-SQLCREATE TABLEALTER TABLE, , a DECLARE @<local_variable> tvrzeních. Změna výchozího uspořádání databáze se vztahuje pouze na nové sloupce a proměnné tohoto typu; Nemění to střídání stávajících dokumentů.
Important
Pro účely zpětné kompatibility je veřejná databázová role automaticky REFERENCES oprávněna k aliasovým datovým typům vytvořeným pomocí .sp_addtype Všimněte si, že když jsou aliasové datové typy vytvořeny použitím CREATE TYPE příkazu místo , sp_addtypetakové automatické udělení nenastane.
Datové typy Alias nelze definovat pomocí časového razítka SQL Server, tabulky, xml, varchar(max),nvarchar(max) nebo varbinary(max).
Permissions
Vyžaduje členství v roli db_owner nebo db_ddladmin pevné databázové roli.
Examples
A. Vytvořte alias datový typ, který neumožňuje nulové hodnoty
Následující příklad vytváří alias datový typ s názvem ssn (číslo sociálního zabezpečení), který je založen na datovém typu varchar dodaném SQL Server. Tento ssn datový typ se používá pro sloupce obsahující 11místná čísla sociálního zabezpečení (999-99-9999). Sloupec nemůže být NULL.
varchar(11) je uzavřena v uvozovkách, protože obsahuje interpunkci (závorky).
USE master;
GO
EXECUTE sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO
B. Vytvořte alias datový typ, který umožňuje nulové hodnoty
Následující příklad vytváří alias datový typ (založený na datetime) pojmenovaný birthday , který umožňuje nulové hodnoty.
USE master;
GO
EXECUTE sp_addtype birthday, datetime, 'NULL';
C. Vytvořte další typy dat aliasů
Následující příklad vytváří další dva typy aliasů, telephone a fax, pro domácí i mezinárodní telefonní a faxová čísla.
USE master;
GO
EXECUTE sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXECUTE sp_addtype fax, 'varchar(24)', 'NULL';
GO
Související obsah
- uložené procedury databázového stroje (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)
- uložené procedury systému (Transact-SQL)