Freigeben über


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).

Themenlink (Symbol) 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)

Siehe auch

Verweis

TYPE_ID (Transact-SQL)

TYPEPROPERTY (Transact-SQL)

sys.types (Transact-SQL)

Metadatenfunktionen (Transact-SQL)