TYPE_NAME (Transact-SQL)
Gibt den nicht qualifizierten Typnamen einer angegebenen Typ-ID zurück.
Gilt für: SQL Server (SQL Server 2008 bis aktuelle Version), Windows Azure SQL-Datenbank (Ursprüngliche Version bis aktuelle Version). |
Transact-SQL-Syntaxkonventionen
Syntax
TYPE_NAME ( type_id )
Argumente
- type_id
Die ID des Typs, der verwendet wird. type_id ist vom Datentyp int und kann auf jeden Typ in jedem Schema verweisen, für das der Aufrufer über eine Zugriffsberechtigung verfügt.
Rückgabetypen
sysname
Ausnahmen
Gibt NULL bei einem Fehler zurück oder wenn ein Aufrufer nicht über Berechtigungen zum Anzeigen des Objekts verfügt.
In SQL Server kann ein Benutzer nur die Metadaten sicherungsfähiger Elemente anzeigen, bei denen der Benutzer entweder der Besitzer ist oder für die dem Benutzer eine Berechtigung erteilt wurde. Dies bedeutet, dass Metadaten ausgebende integrierte Funktionen, z. B. TYPE_NAME, möglicherweise NULL zurückgeben, wenn dem Benutzer für das Objekt keine Berechtigung erteilt wurde. Weitere Informationen finden Sie unter Konfigurieren der Sichtbarkeit von Metadaten.
Hinweise
TYPE_NAME gibt NULL zurück, wenn type_id ungültig ist oder wenn der Aufrufer nicht über die erforderlichen Berechtigungen zum Verweisen auf den Typ verfügt.
TYPE_NAME funktioniert sowohl für Systemdatentypen als auch für benutzerdefinierte Datentypen. Der Typ kann in einem beliebigen Schema enthalten sein, aber ein nicht qualifizierter Typname wird immer zurückgegeben. Dies bedeutet, dass der Name nicht das schema**.**-Präfix enthält.
Systemfunktionen können in der SELECT-Liste, in einer WHERE-Klausel und überall dort verwendet werden, wo ein Ausdruck zulässig ist. Weitere Informationen finden Sie unter Ausdrücke (Transact-SQL) und WHERE (Transact-SQL).
Beispiele
Im folgenden Beispiel werden der Objektname, der Spaltenname und der Typname für jede Spalte in der Vendor-Tabelle der AdventureWorks2012 -Datenbank zurückgegeben.
SELECT o.name AS obj_name, c.name AS col_name,
TYPE_NAME(c.user_type_id) AS type_name
FROM sys.objects AS o
JOIN sys.columns AS c ON o.object_id = c.object_id
WHERE o.name = 'Vendor'
ORDER BY col_name;
GO
Dies ist das Resultset.
obj_name col_name type_name
--------------- ------------------------ --------------
Vendor AccountNumber AccountNumber
Vendor ActiveFlag Flag
Vendor BusinessEntityID int
Vendor CreditRating tinyint
Vendor ModifiedDate datetime
Vendor Name Name
Vendor PreferredVendorStatus Flag
Vendor PurchasingWebServiceURL nvarchar
(8 row(s) affected)