sp_addtype (Transact-SQL)sp_addtype (Transact-SQL)

GILT FÜR: jaSQL Server (ab 2008) neinAzure SQL-DatenbankneinAzure SQL Data Warehouse neinParallel Data WarehouseAPPLIES TO: yesSQL Server (starting with 2008) noAzure SQL Database noAzure SQL Data Warehouse noParallel Data Warehouse

Erstellt einen Aliasdatentyp.Creates an alias data type.

Wichtig

Dieses Feature befindet sich im Wartungsmodus und wird möglicherweise in einer künftigen Version von Microsoft SQL Server entfernt.This feature is in maintenance mode and may be removed in a future version of Microsoft SQL Server. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden.Avoid using this feature in new development work, and plan to modify applications that currently use this feature. Verwendung CREATE TYPE stattdessen.Use CREATE TYPE instead.

Themenlinksymbol Transact-SQL Syntax Conventions (Transact-SQL-Syntaxkonventionen)Topic link icon Transact-SQL Syntax Conventions

SyntaxSyntax

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

ArgumenteArguments

[ @typename = ] type Ist der Name des aliasdatentyps.[ @typename = ] type Is the name of the alias data type. Namen müssen den Regeln für Alias entsprechen Bezeichner und muss in jeder Datenbank eindeutig sein.Alias data type names must follow the rules for identifiers and must be unique in each database. Typ ist Sysname, hat keinen Standardwert.type is sysname, with no default.

[ @phystype = ] system_data_type Der physische oder SQL ServerSQL Server bereitgestellte Datentyp, die auf dem der Aliasdatentyp basiert. System_data_type ist Sysnameund hat keinen Standardwert und kann diese Werte sind möglich:[ @phystype = ] system_data_type Is the physical, or SQL ServerSQL Server supplied, data type on which the alias data type is based.system_data_type is sysname, with no default, and can be one of these values:

bigintbigint binary(n)binary(n) bitbit
char(n)char(n) datetimedatetime decimaldecimal
floatfloat imageimage intint
moneymoney nchar(n)nchar(n) ntextntext
numericnumeric nvarchar(n)nvarchar(n) realreal
smalldatetimesmalldatetime smallintsmallint smallmoneysmallmoney
sql_variantsql_variant texttext tinyinttinyint
uniqueidentifieruniqueidentifier varbinary(n)varbinary(n) varchar(n)varchar(n)

Alle Parameter, die Leerzeichen oder Satzzeichen enthalten, müssen in einfachen Anführungszeichen stehen.Quotation marks are required around all parameters that have embedded blank spaces or punctuation marks. Weitere Informationen zu den verfügbaren Datentypen, finden Sie unter Datentypen (Transact-SQL).For more information about available data types, see Data Types (Transact-SQL).

nn
Eine nicht negative ganze Zahl, die die Länge für den ausgewählten Datentyp angibt.Is a nonnegative integer that indicates the length for the chosen data type.

PP
Eine nicht negative ganze Zahl, die die maximale Anzahl der Dezimalstellen angibt, die vor und nach dem Dezimalzeichen gespeichert werden können.Is a nonnegative integer that indicates the maximum total number of decimal digits that can be stored, both to the left and to the right of the decimal point. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).For more information, see decimal and numeric (Transact-SQL).

ss
Eine nicht negative ganze Zahl, die die maximale Anzahl der Dezimalstellen angibt, die nach dem Dezimalzeichen gespeichert werden können. Diese Zahl muss kleiner oder gleich der Gesamtzahl der Stellen sein.Is a nonnegative integer that indicates the maximum number of decimal digits that can be stored to the right of the decimal point, and it must be less than or equal to the precision. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).For more information, see decimal and numeric (Transact-SQL).

[ @nulltype = ] 'null_type' Gibt an, wie der Aliasdatentyp null-Werte behandelt.[ @nulltype = ] 'null_type' Indicates the way the alias data type handles null values. Null_type ist Varchar ( 8 ), hat den Standardwert NULL und muss in einfache Anführungszeichen ('NULL', 'NOT NULL' oder 'NONULL') eingeschlossen werden.null_type is varchar( 8 ), with a default of NULL, and must be enclosed in single quotation marks ('NULL', 'NOT NULL', or 'NONULL'). Wenn Null_type nicht explizit durch definiert Sp_addtype, wird er auf die aktuelle Standard-NULL-Zulässigkeit festgelegt.If null_type is not explicitly defined by sp_addtype, it is set to the current default nullability. Verwenden Sie die GETANSINULL-Systemfunktion, um die aktuelle Standard-NULL-Zulässigkeit zu ermitteln.Use the GETANSINULL system function to determine the current default nullability. Diese kann mithilfe der SET-Anweisung oder ALTER DATABASE angepasst werden.This can be adjusted by using the SET statement or ALTER DATABASE. Die NULL-Zulässigkeit sollte explizit definiert werden.Nullability should be explicitly defined. Wenn **@phystype** ist Bit, und **@nulltype** nicht angegeben ist, wird der Standardwert ist NULL.If **@phystype** is bit, and **@nulltype** is not specified, the default is NOT NULL.

Hinweis

Die Null_type -Parameter definiert nur die standardmäßige NULL-Zulässigkeit für diesen Datentyp.The null_type parameter only defines the default nullability for this data type. Wenn der Aliasdatentyp beim Erstellen der Tabelle verwendet und die NULL-Zulässigkeit explizit definiert wurde, hat diese Vorrang vor der definierten NULL-Zulässigkeit.If nullability is explicitly defined when the alias data type is used during table creation, it takes precedence over the defined nullability. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL) und CREATE TABLE (Transact-SQL).For more information, see ALTER TABLE (Transact-SQL) and CREATE TABLE (Transact-SQL).

RückgabecodewerteReturn Code Values

0 (Erfolg) oder 1 (Fehler)0 (success) or 1 (failure)

ResultsetsResult Sets

NoneNone

HinweiseRemarks

Der Name eines Aliasdatentyps muss in der Datenbank eindeutig sein, aber Aliasdatentypen mit unterschiedlichen Namen können dieselbe Definition aufweisen.An alias data type name must be unique in the database, but alias data types with different names can have the same definition.

Ausführen von Sp_addtype erstellt einen Aliasdatentyp, die in angezeigt wird. die sys.types -Katalogsicht für eine bestimmte Datenbank.Executing sp_addtype creates an alias data type that appears in the sys.types catalog view for a specific database. Wenn der Aliasdatentyp in allen neuen benutzerdefinierten Datenbanken verfügbar sein muss, fügen sie Modell.If the alias data type must be available in all new user-defined databases, add it to model. Nach der Erstellung eines Aliasdatentyps können Sie diesen mit CREATE TABLE oder ALTER TABLE verwenden sowie Standards und Regeln an den Aliasdatentyp binden.After an alias data type is created, you can use it in CREATE TABLE or ALTER TABLE, and also bind defaults and rules to the alias data type. Alle skalaren Aliasdatentypen, die mit Sp_addtype befinden sich die Dbo Schema.All scalar alias data types that are created by using sp_addtype are contained in the dbo schema.

Aliasdatentypen erben die Standardsortierung der Datenbank.Alias data types inherit the default collation of the database. Die Sortierungen von Spalten und Variablen von Aliastypen sind in definiert die Transact-SQLTransact-SQL CREATE TABLE-, ALTER TABLE und DECLARE @Local_variable Anweisungen.The collations of columns and variables of alias types are defined in the Transact-SQLTransact-SQL CREATE TABLE, ALTER TABLE and DECLARE @local_variable statements. Eine Änderung der Standardsortierung der Datenbank gilt nur für neue Spalten und Variablen des Typs; sie wirkt sich nicht auf die Sortierung bereits vorhandener Spalten und Variablen aus.Changing the default collation of the database applies only to new columns and variables of the type; it does not change the collation of existing ones.

Wichtig

Aus Gründen der Abwärtskompatibilität die öffentliche Datenbankrolle wird automatisch gewährt die REFERENCES-Berechtigung für Aliasdatentypen, die mit Sp_addtype.For backward compatibility purposes, the public database role is automatically granted REFERENCES permission on alias data types that are created by using sp_addtype. Beachten Sie, wann die Aliasdatentypen erstellt werden, mithilfe der CREATE TYPE-Anweisung anstelle von Sp_addtype, erfolgt keine automatische solche erteilen.Note when alias data types are created by using the CREATE TYPE statement instead of sp_addtype, no such automatic grant occurs.

Aliasdatentypen können nicht definiert werden, indem die SQL ServerSQL Server Zeitstempel, Tabelle, Xml, varchar(max), nvarchar(max) oder 'varbinary(max)' -Datentypen.Alias data types cannot be defined by using the SQL ServerSQL Server timestamp, table, xml, varchar(max), nvarchar(max) or varbinary(max) data types.

BerechtigungenPermissions

Erfordert die Mitgliedschaft in der Db_owner oder Db_ddladmin festen Datenbankrolle.Requires membership in the db_owner or db_ddladmin fixed database role.

BeispieleExamples

A.A. Erstellen eines Aliasdatentyps, der keine NULL-Werte zulässtCreating an alias data type that does not allow for null values

Das folgende Beispiel erstellt einen Aliasdatentyp namens ssn (Sozialversicherungsnummer), basiert auf der SQL ServerSQL Server-bereitgestellten Varchar -Datentyp.The following example creates an alias data type named ssn (social security number) that is based on the SQL ServerSQL Server-supplied varchar data type. Der ssn-Datentyp wird für Spalten mit 11-stelligen Sozialversicherungsnummern verwendet (999-99-9999).The ssn data type is used for columns holding 11-digit social security numbers (999-99-9999). Diese Spalte darf nicht den Wert NULL aufweisen.The column cannot be NULL.

Beachten Sie, dass varchar(11) in einfachen Anführungszeichen steht, da es Satzzeichen (Klammern) enthält.Notice that varchar(11) is enclosed in single quotation marks because it contains punctuation (parentheses).

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

B.B. Erstellen eines Aliasdatentyps, der NULL-Werte zulässtCreating an alias data type that allows for null values

Im folgenden Beispiel wird ein Aliasdatentyp (basierend auf datetime) namens birthday erstellt, der NULL-Werte zulässt.The following example creates an alias data type (based on datetime) named birthday that allows for null values.

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

C.C. Erstellen von zusätzlichen AliasdatentypenCreating additional alias data types

Im folgenden Beispiel werden zwei zusätzliche Aliasdatentypen, telephone und fax, für nationale und internationale Telefon- und Faxnummern erstellt.The following example creates two additional alias data types, telephone and fax, for both domestic and international telephone and fax numbers.

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

Siehe auchSee Also

Datenbank-Engine gespeicherten Prozeduren (Transact-SQL) Database Engine Stored Procedures (Transact-SQL)
CREATE TYPE (Transact-SQL) CREATE TYPE (Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE RULE (Transact-SQL) CREATE RULE (Transact-SQL)
sp_bindefault (Transact-SQL) sp_bindefault (Transact-SQL)
sp_bindrule (Transact-SQL) sp_bindrule (Transact-SQL)
sp_droptype (Transact-SQL) sp_droptype (Transact-SQL)
sp_rename (Transact-SQL) sp_rename (Transact-SQL)
sp_unbindefault (Transact-SQL) sp_unbindefault (Transact-SQL)
sp_unbindrule (Transact-SQL) sp_unbindrule (Transact-SQL)
Gespeicherte Systemprozeduren (Transact-SQL)System Stored Procedures (Transact-SQL)