You can usually get that info from the database's system tables, depending
on your RDBMS. (In the following queries, 'typename' will give you the
datatype.)
MSSQL:
SELECT syscolumns.colid,
syscolumns.name,
syscolumns.colorder AS sortorder,
syscolumns.prec AS collen,
syscolumns.xtype,
syscolumns.typestat,
syscolumns.xusertype,
syscolumns.isnullable,
systypes.name AS typename,
( SELECT COUNT(*)
FROM sysindexkeys
WHERE id = syscolumns.id
AND indid = 1
AND colid = syscolumns.colid
) AS isPrimary
FROM syscolumns LEFT JOIN
systypes ON syscolumns.xtype = systypes.xtype
AND syscolumns.xusertype = systypes.xusertype
WHERE id = OBJECT_ID(<cfqueryparam cfsqltype="CF_SQL_VARCHAR"
value="#arguments.tableName#">)
ORDER BY colorder
Oracle:
SELECT table_name colid,
column_name name,
column_id sortorder,
data_length collen,
nullable isnullable,
data_type typename,
( SELECT COUNT(*)
FROM user_constraints c INNER JOIN
user_cons_columns cc ON c.constraint_name =
cc.constraint_name
WHERE c.table_name = <cfqueryparam
cfsqltype="CF_SQL_VARCHAR" value="#UCase(arguments.tableName)#">
AND c.constraint_type = <cfqueryparam
cfsqltype="CF_SQL_VARCHAR" value="P">
AND cc.column_name = user_tab_columns.column_name
) AS isPrimary
FROM user_tab_columns
WHERE table_name = <cfqueryparam cfsqltype="CF_SQL_VARCHAR"
value="#UCase(arguments.tableName)#">
ORDER BY column_id
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~|
Want to reach the ColdFusion community with something they want? Let them know
on the House of Fusion mailing lists
Archive:
http://www.houseoffusion.com/groups/cf-talk/message.cfm/messageid:331186
Subscription: http://www.houseoffusion.com/groups/cf-talk/subscribe.cfm
Unsubscribe: http://www.houseoffusion.com/cf_lists/unsubscribe.cfm?user=89.70.4