Datentypen (Datenbankmodul)

Objekte mit Daten haben einen mit ihnen verknüpften Datentyp, der die Art von Daten definiert, z. B. Zeichendaten, ganzzahlige Daten, Binärdaten usw., die das Objekt enthalten kann. Die folgenden Objekte haben Datentypen:

  • Spalten in Tabellen und Sichten.

  • Parameter in gespeicherten Prozeduren.

  • Variablen.

  • Transact-SQL-Funktionen, die mindestens einen Datenwert eines bestimmten Datentyps zurückgeben.

  • Gespeicherte Prozeduren, die einen Rückgabecode haben, der immer einen integer-Datentyp besitzt.

Das Zuweisen eines Datentyps zu einem Objekt definiert vier Attribute des Objekts:

  • Die Art der im Objekt enthaltenen Daten.

  • Die Länge oder Größe des gespeicherten Wertes.

  • Die Genauigkeit der Zahl (nur numerische Datentypen).

  • Die Dezimalstellen der Zahl (nur numerische Datentypen).

Weitere Informationen zu Genauigkeit, Dezimalstellen und Länge von Datentypen finden Sie unter Genauigkeit, Dezimalstellen und Länge (Transact-SQL).

Transact-SQL verfügt über die folgenden Systemdatentypen:

Alle in MicrosoftSQL Server gespeicherten Daten müssen mit einem dieser Basisdatentypen kompatibel sein. Der cursor-Datentyp ist der einzige Basisdatentyp, der nicht einer Tabellenspalte zugewiesen werden kann. Er kann lediglich mit Variablen und für Parameter von gespeicherten Prozeduren verwendet werden.

Für einige Basisdatentypen gibt es Synonyme. Beispielsweise ist rowversion ein Synonym für timestamp, und national character varying ist ein Synonym für nvarchar. Weitere Informationen zum Verhalten von Synonymen finden Sie unter Synonyme für Datentypen (Transact-SQL).

Es können auch zwei Arten von benutzerdefinierten Datentypen erstellt werden:

  • Aliasdatentypen werden aus Basisdatentypen erstellt. Sie stellen einen Mechanismus zum Übernehmen eines Namens für einen Datentyp zur Verfügung, der eine bessere Beschreibung der Typen von Werten darstellt, die in dem Objekt gehalten werden sollen. So kann ein Programmierer oder Datenbankadministrator leichter den Verwendungszweck aller mit dem Datentyp definierten Objekte verstehen. Beispiel:

    -- Create a birthday datetype that allows nulls.
    CREATE TYPE birthday
    FROM datetime NULL
    GO
    -- Create a table using the new data type.
    CREATE TABLE employee (emp_id char(5), emp_first_name char(30), emp_last_name char(40), emp_birthday birthday)
    

    Weitere Informationen finden Sie unter Arbeiten mit Aliasdatentypen.

  • CLR-benutzerdefinierte Datentypen basieren auf den Datentypen, die in verwaltetem Code erstellt und in eine SQL Server-Assembly hochgeladen werden. Weitere Informationen finden Sie unter Arbeiten mit CLR-benutzerdefinierten Typen.