SELECT c.name AS ColumnName, t.name AS DataType, c.max_length AS MaxLength, c.precision AS NumericPrecision, c.scale AS NumericScale, c.is_nullable AS IsNullable, ISNULL(dc.definition, '') AS DefaultValue FROM sys.views v INNERJOIN sys.columns c ON v.object_id = c.object_id INNERJOIN sys.types t ON c.user_type_id = t.user_type_id LEFTJOIN sys.default_constraints dc ON c.default_object_id = dc.object_id WHERE v.name ='檢視表名稱' ORDERBY c.column_id;
MySQL/MariaDB
1 2 3 4 5 6 7 8 9 10 11
SELECT COLUMN_NAME, DATA_TYPE, CHARACTER_MAXIMUM_LENGTH, NUMERIC_PRECISION, NUMERIC_SCALE, IS_NULLABLE, COLUMN_DEFAULT FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA ='資料庫名稱' AND TABLE_NAME ='檢視表名稱';
Oracle
1 2 3 4 5 6 7 8 9 10 11
SELECT COLUMN_NAME, DATA_TYPE, DATA_LENGTH, DATA_PRECISION, DATA_SCALE, NULLABLE, DATA_DEFAULT FROM ALL_TAB_COLUMNS WHERE TABLE_NAME ='檢視表名稱' ORDERBY COLUMN_ID;
PostgreSQL
1 2 3 4 5 6 7 8 9 10 11
SELECT a.attname AS column_name, pg_catalog.format_type(a.atttypid, a.atttypmod) AS data_type, a.attnotnull AS is_not_null, pg_catalog.pg_get_expr(d.adbin, d.adrelid) AS default_value FROM pg_catalog.pg_attribute a LEFTJOIN pg_catalog.pg_attrdef d ON (a.attrelid, a.attnum) = (d.adrelid, d.adnum) WHERE a.attrelid ='檢視表名稱'::regclass AND a.attnum >0 ANDNOT a.attisdropped ORDERBY a.attnum;