<CFQUERY DATASOURCE="#Request.DSN#" NAME="qryTblDesc">
SELECT so.Name as TableName,
sc.Name as ColumnName, sc.Length,
st.Name as ColumnType
FROM (sysobjects so INNER JOIN syscolumns sc ON so.ID=sc.ID) INNER JOIN SysTypes st ON sc.xtype=st.xtype
WHERE so.xType = 'U'
ORDER BY TableName ASC, ColumnName ASC
</CFQUERY>
<CFSET DisplayTableName = "">
<table border="0" cellpadding="0" cellspacing="0">
<CFLOOP QUERY="qryTblDesc">
<CFIF CompareNoCase(Trim(qryTblDesc.TableName), variables.DisplayTableName) NEQ 0>
<CFSET variables.DisplayTableName = Trim(qryTblDesc.TableName)>
<tr>
<td><strong><CFOUTPUT>#variables.DisplayTableName#</CFOUTPUT></strong></td>
</tr>
</CFIF>
<tr>
<td><CFOUTPUT>#qryTblDesc.ColumnName# #qryTblDesc.Length# #qryTblDesc.ColumnType#</CFOUTPUT></td>
</tr>
</CFLOOP>
</table>