The query below lists all non-nullable columns in a database.
Query
SELECT COL.DatabaseName,
COL.TableName,
COL.ColumnName,
COL.ColumnType,
COL.ColumnLength,
COL.ColumnFormat
FROM DBC.ColumnsV COL
JOIN DBC.Tablesv TAB
ON TAB.DatabaseName = COL.DatabaseName
AND TAB.TableName = COL.TableName
AND TAB.TableKind = 'T'
WHERE COL.DataBaseName NOT IN ('All', 'Crashdumps', 'DBC', 'dbcmngr',
'Default', 'External_AP', 'EXTUSER', 'LockLogShredder', 'PUBLIC',
'Sys_Calendar', 'SysAdmin', 'SYSBAR', 'SYSJDBC', 'SYSLIB',
'SystemFe', 'SYSUDTLIB', 'SYSUIF', 'TD_SERVER_DB', 'TDStats',
'TD_SYSGPL', 'TD_SYSXML', 'TDMaps', 'TDPUSER', 'TDQCD',
'tdwm', 'SQLJ', 'TD_SYSFNLIB', 'SYSSPATIAL')
AND COL.Nullable = 'N'
ORDER BY COL.DatabaseName,
COL.TableName,
COL.ColumnName;
Columns
- DatabaseName - name of database
- TableName - name of table
- ColumnName - name of column
- ColumnType - data type of column. Some possible values:
- CF - Char
- CV - Varchar
- D - Decimal
- DA - Date
- F - Float
- I2 - Small Int
- I - Integer
- AT - Time
- TZ - Time with time zone
- TS - Timestamp
- SZ - Timestamp with time zone
- BO - BLOB
- CO - CLOB
- All possible data types (look for Possible Values for ColumnType paragraph)
- ColumnLength - length of the data type in bytes
- ColumnFormat - column format. To learn more about it visit official documentation
Rows
- One row: represents one non-nullable column in a table
- Scope of rows: all non-nullable columns in all tables
- Ordered by: column name