GUIs wie SSMS oder Azure Data Studio machen es einfach, den Datentyp einer Spalte zu sehen. Normalerweise ist es einfach, im Objekt-Explorer zu der Spalte zu navigieren, und Sie können den Datentyp direkt neben der Spalte sehen.
Wenn Sie jedoch T-SQL verwenden, müssen Sie eine Abfrage ausführen.
Die information_schema.columns
Anzeigen
Die information_schema.columns
view ist eine gute Option, wenn Sie nur den Datentyp wollen und nicht mehr:
SELECT
COLUMN_NAME,
DATA_TYPE,
CHARACTER_MAXIMUM_LENGTH AS MAX_LENGTH,
CHARACTER_OCTET_LENGTH AS OCTET_LENGTH
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Beispielergebnis:
+---------------+-------------+--------------+----------------+ | COLUMN_NAME | DATA_TYPE | MAX_LENGTH | OCTET_LENGTH | |---------------+-------------+--------------+----------------| | ProductName | varchar | 255 | 255 | +---------------+-------------+--------------+----------------+
Ersetzen Sie Products
und ProductName
mit dem Namen Ihrer Tabelle bzw. Spalte.
OK, ich habe hier etwas mehr als nur den Datentyp zurückgegeben. Sie können die anderen Spalten jedoch bei Bedarf weglassen. Oder Sie können weitere hinzufügen. Beispielsweise gibt es Spalten, die die Genauigkeit der Spalte enthalten, falls Sie eine numerische oder datetime-Spalte betrachten.
Sie können alle Spalten wie folgt zurückgeben:
SELECT *
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'Products'
AND COLUMN_NAME = 'ProductName';
Die sys.columns
Anzeigen
Die sys.columns
Ansicht ist eine weitere Option. Wir können dies mit den sys.tables
verbinden Ansicht, um eine bestimmte Spalte aus einer bestimmten Tabelle abzurufen:
SELECT
c.name,
type_name(c.system_type_id) AS system_type,
type_name(c.user_type_id) AS user_type,
c.max_length,
c.precision,
c.scale
FROM sys.tables t
JOIN sys.columns c ON t.object_id = c.object_id
WHERE t.name = 'Products'
AND c.name = 'ProductName';
Beispielergebnis:
+-------------+---------------+-------------+--------------+-------------+---------+ | name | system_type | user_type | max_length | precision | scale | |-------------+---------------+-------------+--------------+-------------+---------| | ProductName | varchar | varchar | 255 | 0 | 0 | +-------------+---------------+-------------+--------------+-------------+---------+
Fügen Sie auch hier nach Bedarf mehr oder weniger Spalten hinzu.
In diesem Beispiel habe ich den TYPE_NAME()
verwendet Funktion, um den Namen des Datentyps basierend auf seiner ID zurückzugeben. Dies hat mich davor bewahrt, einen Join für die sys.types
durchzuführen Tabelle.
Die sp_help
Gespeicherte Prozedur
Die sp_help
gespeicherte Prozedur kann nützlich sein, wenn Sie mehr Informationen über die Tabelle zurückgeben möchten.
Diese gespeicherte Prozedur gibt Informationen über ein Datenbankobjekt zurück (jedes Objekt, das in sys.sysobjects
aufgeführt ist Kompatibilitätsansicht), einen benutzerdefinierten Datentyp oder einen Datentyp:
EXEC sp_help Products;
Dies gibt eine Menge Output zurück, daher werde ich hier nicht alles auflisten.
Ersetzen Sie einfach Products
mit dem Namen der Tabelle oder eines anderen Objekts, über das Sie Informationen erhalten möchten.
Datentyp einer Spalte aus einer Abfrage abrufen
Sie können auch den Datentyp der Spalten abrufen, die von einer Abfrage zurückgegeben werden.
Weitere Informationen und Beispiele finden Sie unter Ermitteln des Datentyps der in einer Ergebnismenge in SQL Server zurückgegebenen Spalten.