sp_addtype (Transact-SQL)
Erstellt einen Aliasdatentyp.
Wichtig: |
---|
Dieses Feature wird in einer zukünftigen Version von Microsoft SQL Server entfernt. Verwenden Sie dieses Feature beim Entwickeln neuer Anwendungen nicht, und planen Sie das Ändern von Anwendungen, in denen es zurzeit verwendet wird. Verwenden Sie stattdessen CREATE TYPE. |
Transact-SQL-Syntaxkonventionen
Syntax
sp_addtype [ @typename = ] type,
[ @phystype = ] system_data_type
[ , [ @nulltype = ] 'null_type' ] ;
Argumente
[ @typename= ] type
Der Name des Aliasdatentyps. Namen von Aliasdatentypen müssen den Regeln für Bezeichner entsprechen und in jeder Datenbank eindeutig sein. type ist vom Datentyp sysname und hat keinen Standard.
[ @phystype=] system_data_type
Der physische oder von SQL Server bereitgestellte Datentyp, auf dem der Aliasdatentyp basiert. system_data_type ist vom Datentyp sysname und hat keinen Standard. Die folgenden Werte sind möglich:
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) |
Alle Parameter, die Leerzeichen oder Satzzeichen enthalten, müssen in einfachen Anführungszeichen stehen. Weitere Informationen zu den verfügbaren Datentypen finden Sie unter Datentypen (Transact-SQL).
n
Eine nicht negative ganze Zahl, die die Länge für den ausgewählten Datentyp angibt.
P
Eine nicht negative ganze Zahl, die die maximale Anzahl der Dezimalstellen angibt, die vor und nach dem Dezimalzeichen gespeichert werden können. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).
s
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. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).
[ @nulltype = ] 'null_type'
Gibt an, wie der Aliasdatentyp Nullwerte behandelt. null_type ist vom Datentyp varchar(8), hat den Standard NULL und muss in einfachen Anführungszeichen stehen ('NULL', 'NOT NULL' oder 'NONULL'). Wenn Sie null_type nicht explizit mit sp_addtype definieren, wird die aktuelle Standard-NULL-Zulässigkeit festgelegt. Verwenden Sie die GETANSINULL-Systemfunktion, um die aktuelle Standard-NULL-Zulässigkeit zu ermitteln. Diese kann mithilfe der SET-Anweisung oder ALTER DATABASE angepasst werden. Die NULL-Zulässigkeit sollte explizit definiert werden. Wenn @phystype vom Datentyp bit ist und @nulltype nicht angegeben wurde, lautet der Standardwert NOT NULL.
Hinweis: |
---|
Der null_type-Parameter definiert nur die Standard-NULL-Zulässigkeit für diesen Datentyp. 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. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL) und CREATE TABLE (Transact-SQL). |
Rückgabecodewerte
0 (Erfolg) oder 1 (Fehler)
Resultsets
Keine
Hinweise
Der Name eines Aliasdatentyps muss in der Datenbank eindeutig sein, aber Aliasdatentypen mit unterschiedlichen Namen können dieselbe Definition aufweisen.
Durch Ausführen von sp_addtype wird ein Aliasdatentyp erstellt, der in der sys.types-Katalogsicht für eine bestimmte Datenbank angezeigt wird. Muss der Aliasdatentyp in allen neuen benutzerdefinierten Datenbanken verfügbar sein, fügen Sie ihn zu model hinzu. Nach der Erstellung eines Aliasdatentyps können Sie diesen mit CREATE TABLE oder ALTER TABLE verwenden sowie Standards und Regeln an den Aliasdatentyp binden. Alle skalaren Aliasdatentypen, die mithilfe von sp_addtype erstellt wurden, sind im dbo-Schema enthalten.
Aliasdatentypen erben die Standardsortierung der Datenbank. Die Sortierungen der Spalten und Variablen von Aliastypen sind in den Transact-SQL-Anweisungen CREATE TABLE, ALTER TABLE und DECLARE @local_variable definiert. 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.
Sicherheitshinweis: |
---|
Aus Gründen der Abwärtskompatibilität wird der public-Datenbankrolle automatisch die REFERENCES-Berechtigung für Aliasdatentypen erteilt, die mithilfe von sp_addtype erstellt wurden. Wurden die Aliasdatentypen jedoch mithilfe der CREATE TYPE-Anweisung anstelle von sp_addtype erstellt, wird die Berechtigung nicht automatisch erteilt. |
Aliasdatentypen können nicht mithilfe der Datentypen SQL Server timestamp, table, xml, varchar(max), nvarchar(max) oder varbinary(max) definiert werden.
Berechtigungen
Setzt die Mitgliedschaft in der festen Datenbankrolle db_owner oder db_ddladmin voraus.
Beispiele
A. Erstellen eines Aliasdatentyps, der keine NULL-Werte zulässt
Im folgenden Beispiel wird ein Aliasdatentyp namens ssn
(Social Security Number, Sozialversicherungsnummer) erstellt, der auf dem von SQL Server bereitgestellten varchar-Datentyp basiert. Der ssn
-Datentyp wird für Spalten mit 11-stelligen Sozialversicherungsnummern verwendet (999-99-9999). Diese Spalte darf nicht den Wert NULL aufweisen.
Beachten Sie, dass varchar(11)
in einfachen Anführungszeichen steht, da es Satzzeichen (Klammern) enthält.
USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO
B. Erstellen eines Aliasdatentyps, der NULL-Werte zulässt
Im folgenden Beispiel wird ein Aliasdatentyp (basierend auf datetime
) namens birthday
erstellt, der NULL-Werte zulässt.
USE master;
GO
EXEC sp_addtype birthday, datetime, 'NULL';
C. Erstellen zusätzlicher Aliasdatentypen
Im folgenden Beispiel werden zwei zusätzliche Aliasdatentypen, telephone
und fax
, für nationale und internationale Telefon- und Faxnummern erstellt.
USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO
Siehe auch
Verweis
Gespeicherte Prozeduren für das Datenbankmodul (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)
Gespeicherte Systemprozeduren (Transact-SQL)