Freigeben über


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.

  • 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 dezimal und numerisch.

  • 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 dezimal und numerisch.

[ @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 NULLdie 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 und CREATE TABLE.

[ @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 TABLEverwenden 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 TABLEund 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 faxzwar 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