sp_addtype (Transact-SQL)
Gilt für: SQL Server
Erstellt einen Aliasdatentyp.
Wichtig
Diese Funktion wird in einer zukünftigen Version von SQL Serverentfernt. Nutzen Sie diese Funktionen bei Neuentwicklungen nicht mehr, und planen Sie die Änderung von Anwendungen, die diese Funktion zurzeit verwenden. Verwenden Sie stattdessen CREATE TYPE .
Transact-SQL-Syntaxkonventionen
Syntax
sp_addtype
[ @typename = ] N'typename'
, [ @phystype = ] N'phystype'
[ , [ @nulltype = ] 'nulltype' ]
[ , [ @owner = ] N'owner' ]
[ ; ]
Argumente
[ @typename = ] N'typename'
@typename ist "sysname" ohne Standard.
Der Name des Alias-Datentyps. Alias-Datentypnamen müssen den Regeln für Bezeichner entsprechen und in jeder Datenbank eindeutig sein. type is sysname, with no default.
[ @phystype = ] N'phystype'
Der physische oder SQL Server-Datentyp, auf dem der Aliasdatentyp basiert. @phystype ist "sysname" ohne Standard und kann einer der folgenden Werte sein:
- bigint, int, smallint, and tinyint
- binary, varbinary(n) und image
- bit
- char(n), nchar(n), varchar(n), nvarchar(n), **text und ntext
- datetime- und smalldatetime-Daten
- Dezimalstellen, P) und Numerische(n, P)
- float und real
- money und smallmoney
- sql_variant
- uniqueidentifier
Anführungszeichen sind für alle Parameter erforderlich, die eingebettete Leerzeichen oder Satzzeichen enthalten. Weitere Informationen zu 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 Gesamtanzahl von Dezimalziffern angibt, die gespeichert werden können, sowohl links als auch rechts vom Dezimalkomma. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).
s
Eine nicht negative ganze Zahl, die die maximale Anzahl von Dezimalziffern angibt, die rechts vom Dezimalkomma gespeichert werden können, und sie muss kleiner oder gleich der Genauigkeit sein. Weitere Informationen finden Sie unter decimal und numeric (Transact-SQL).
[ @nulltype = ] 'nulltype'
Gibt an, wie der Aliasdatentyp NULL-Werte behandelt. @nulltype ist varchar(8) mit einem Standardwert von NULL
, und muss in einfache Anführungszeichen ('NULL'
, 'NOT NULL'
oder 'NONULL'
) eingeschlossen werden.
Wenn @nulltype nicht explizit definiert ist, wird sie auf die aktuelle Standard-NULL-Lesbarkeit festgelegt. Verwenden Sie die GETANSINULL
Systemfunktion, um die aktuelle Standard-Null-Werte zu ermitteln. Dies kann mithilfe der SET
Anweisung oder ALTER DATABASE
. Die NULL-Zulässigkeit sollte explizit definiert werden. Wenn @phystype Bit ist und @nulltype nicht angegeben ist, ist NOT NULL
die Standardeinstellung .
Hinweis
Der parameter @nulltype definiert nur die standard 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. Weitere Informationen finden Sie unter ALTER TABLE (Transact-SQL) und CREATE TABLE (Transact-SQL).
[ @owner = ] N'owner'
Nur für Informationszwecke identifiziert. Wird nicht unterstützt. Zukünftige Kompatibilität wird nicht sichergestellt.
Rückgabecodewerte
0
(erfolgreich) oder 1
Fehler.
Resultset
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 sp_addtype
wird ein Aliasdatentyp erstellt, der in der sys.types
Katalogansicht für eine bestimmte Datenbank angezeigt wird. Wenn der Aliasdatentyp in allen neuen benutzerdefinierten Datenbanken verfügbar sein muss, fügen Sie ihn hinzu model
. Nachdem ein Aliasdatentyp erstellt wurde, können Sie ihn in CREATE TABLE
oder oder ALTER TABLE
verwenden und außerdem Standardwerte und Regeln an den Aliasdatentyp binden. Alle skalaren Alias-Datentypen, die mithilfe des sp_addtype
Schemas erstellt werden, sind im dbo
Schema enthalten.
Aliasdatentypen erben die Standardsortierung der Datenbank. Die Sortierungen von Spalten und Variablen von Aliastypen werden in Transact-SQL CREATE TABLE
, ALTER TABLE
und DECLARE @<local_variable>
Anweisungen definiert. Das Ändern der Standardsortierung der Datenbank gilt nur für neue Spalten und Variablen des Typs; es ändert nicht die Sortierung vorhandener.
Wichtig
Aus Gründen der Abwärtskompatibilität wird die rolle der öffentlichen Datenbank automatisch die Berechtigung für Alias-Datentypen erteiltREFERENCES
, die mithilfe von sp_addtype
Beachten Sie, dass Alias-Datentypen mithilfe der CREATE TYPE
Anweisung anstelle von sp_addtype
" keine solche automatische Erteilung erfolgt.
Alias-Datentypen können nicht mithilfe des SQL Server-Zeitstempels, der Tabelle, xml, varchar(max), nvarchar(max)- oder varbinary(max)-Datentypen definiert werden.
Berechtigungen
Erfordert die Mitgliedschaft in der db_owner - oder db_ddladmin festen Datenbankrolle.
Beispiele
A. Erstellen eines Aliasdatentyps, der keine Nullwerte zulässt
Im folgenden Beispiel wird ein Aliasdatentyp namens ssn
(Sozialversicherungsnummer) erstellt, der auf dem von SQL Server bereitgestellten Varchar-Datentyp basiert. Der ssn
Datentyp wird für Spalten mit 11-stelligen Sozialversicherungsnummern (999-99-9999
) verwendet. Die Spalte kann nicht sein NULL
.
varchar(11)
wird in einfache Anführungszeichen eingeschlossen, da sie Interpunktion (Klammern) enthält.
USE master;
GO
EXEC sp_addtype ssn, 'varchar(11)', 'NOT NULL';
GO
B. Erstellen eines Aliasdatentyps, der Nullwerte 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 Alias-Datentypen
Im folgenden Beispiel werden zwei weitere Alias-Datentypen erstellt, telephone
und fax
zwar sowohl für inland als auch für internationale Telefon- und Faxnummern.
USE master;
GO
EXEC sp_addtype telephone, 'varchar(24)', 'NOT NULL';
GO
EXEC sp_addtype fax, 'varchar(24)', 'NULL';
GO
Zugehöriger Inhalt
- Datenbank-Engine gespeicherten Prozeduren (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)