Gibt es eine SQL-Anweisung, die den Typ einer Spalte in einer Tabelle zurückgeben kann?
Antworten
Zu viele Anzeigen?
bulbul bd
Punkte
126
alex351
Punkte
1491
Somil Gupta
Punkte
39
Jigar Parekh
Punkte
553
Mit dieser Abfrage erhalten Sie Schema, Tabelle, Spalte, Typ, max_length, is_nullable
SELECT QUOTENAME(SCHEMA_NAME(tb.[schema_id])) AS 'Schema'
,QUOTENAME(OBJECT_NAME(tb.[OBJECT_ID])) AS 'Table'
,C.NAME as 'Column'
,T.name AS 'Type'
,C.max_length
,C.is_nullable
FROM SYS.COLUMNS C INNER JOIN SYS.TABLES tb ON tb.[object_id] = C.[object_id]
INNER JOIN SYS.TYPES T ON C.system_type_id = T.user_type_id
WHERE tb.[is_ms_shipped] = 0
ORDER BY tb.[Name]
Anthony Griggs
Punkte
1313
In meinem Fall musste ich den Datentyp für Dynamic SQL (Shudder!) sowieso hier ist eine Funktion, die ich erstellt, dass die vollständige Datentyp zurückgibt. Anstatt "decimal" zurückzugeben, würde sie beispielsweise DECIMAL(18,4) zurückgeben: dbo.GetLiteralDataType