Wenn Sie jemals eine Liste von Datentypen in SQL Server abrufen müssen, können Sie dazu eine der Systemansichten verwenden.
Insbesondere können Sie die sys.types
verwenden Systemkatalogansicht. Diese Ansicht gibt alle vom System bereitgestellten und benutzerdefinierten Datentypen zurück, die in der Datenbank definiert sind. Wenn Sie SQL Server 2000 verwenden, sys.systypes
sollte reichen.
Beispiel 1 – Die sys.types
Anzeigen
Die sys.types
view ist die beste Ansicht, wenn Sie eine neuere Version von SQL Server als SQL Server 2000 verwenden.
Der schnellste/einfachste Weg, die sys.types
zu verwenden Ansicht ist alles auszuwählen. In diesem Fall könnte Ihr Code so aussehen:
SELECT * FROM sys.types;
Dies gibt jedoch viele Spalten zurück, an denen Sie möglicherweise interessiert sind oder nicht. Sie können es auf nur die Spalten eingrenzen, die Sie interessieren.
Hier ist ein Beispiel für die Auswahl einiger interessanter Spalten:
SELECT name, max_length, [precision], scale, is_user_definedFROM sys.types;
Ergebnis:
Dies sind die Datentypen innerhalb der aktuellen Datenbank. Wenn Sie zu einer anderen Datenbank wechseln, könnten Sie andere Ergebnisse erhalten (dies hängt weitgehend davon ab, ob benutzerdefinierte Datentypen oder Alias-Datentypen definiert wurden und ob sie sich zwischen den Datenbanken unterscheiden).
Beispiel 2 – Alias &benutzerdefinierte Datentypen
Im vorherigen Beispiel habe ich den is_user_defined
eingefügt Säule. Wir können sehen, dass keiner der Datentypen benutzerdefinierte oder Alias-Datentypen sind, weil sie alle 0
haben als ihren Wert.
Lassen Sie uns einen Alias-Datentyp erstellen und dann sehen, wie er in den Ergebnissen angezeigt wird.
Erstellen Sie den Alias-Datentyp:
CREATE TYPE SSN FROM varchar(11) NOT NULL;
Lassen Sie uns nun die Abfrage erneut ausführen.
SELECT name, max_length, [precision], scale, is_user_definedFROM sys.types;
Ergebnis:
Der neue Datentyp erscheint (ganz unten). Es hat auch einen Wert von 1
im is_user_defined
Spalte.
Die sys.systypes
Anzeigen
Es gibt auch eine sys.systypes
Systemkompatibilitätsansicht, die nur für die Abwärtskompatibilität bereitgestellt wird. Das liegt daran, dass systypes
war der Name einer Systemtabelle in SQL Server 2000, und es könnte viele Legacy-Systeme geben, deren Code auf diese Tabelle verweist.
Microsoft hat angegeben, dass die sys.systypes
Die Systemkompatibilitätsansicht wird in einer zukünftigen Version von Microsoft SQL Server entfernt und empfiehlt daher, diese Ansicht bei neuen Arbeiten nicht zu verwenden.
Mit anderen Worten, verwenden Sie sys.types
stattdessen Wenn du kannst.
Wenn Sie jedoch noch eine frühere Version von SQL Server verwenden, müssen Sie sys.systypes
verwenden .
Beachten Sie, dass sys.systypes
enthält andere Spalten/Spaltennamen als sys.types
, sodass die Spaltennamen, die ich im vorherigen Beispiel verwendet habe, nicht funktionieren.
Mit dem Sternchen (*
) können Sie weiterhin alle Spalten auswählen ) allerdings Platzhalterzeichen:
SELECT * FROM sys.systypes;