Gibt es eine SQL-Anweisung, die den Typ einer Spalte in einer Tabelle zurückgeben kann?
Antworten
Zu viele Anzeigen?
AjV Jsy
Punkte
5481
Um die tatsächlich deklarierten Datentypen abzurufen, z. B. für die Verwendung in dynamischem SQL für ALTER COLUMNs, kann etwas wie folgt verwendet werden:
SELECT
TABLE_NAME,
COLUMN_NAME,
DATA_TYPE
+ CASE WHEN DATA_TYPE IN ('char','nchar','varchar','nvarchar','binary','varbinary')
AND CHARACTER_MAXIMUM_LENGTH > 0 THEN
COALESCE('('+CONVERT(varchar,CHARACTER_MAXIMUM_LENGTH)+')','')
ELSE '' END
+ CASE WHEN DATA_TYPE IN ('decimal','numeric') THEN
COALESCE('('+CONVERT(varchar,NUMERIC_PRECISION)+','+CONVERT(varchar,NUMERIC_SCALE)+')','')
ELSE '' END
AS Declaration_Type,
CASE WHEN IS_NULLABLE='NO' THEN 'NOT ' ELSE '' END + 'NULL' AS Nullable
FROM INFORMATION_SCHEMA.COLUMNS
ORDER BY 1,2
Talha Tayyab
Punkte
1803
Arno Tolmeijer
Punkte
41
gubitza
Punkte
31
Bob Krieter
Punkte
51