JDBC里提供的DatabaseMetaData类提供的方法可以方便的完成这事,但有时候数据库因权限问题自己不能完全控制,用这个类会有问题。
同样用SQL也可以完成这个问题:
-- 列用户所有表: select name as tn from sysobjects where type='U' -- 列某个表所有字段及类型,是否允许空等: select a.colid as id, b.name as tab_name , a.name as COLUMN_NAME, c.name as DATA_TYPE, a.length as COLUMN_SIZE, a.prec as length, a.scale, case isnull(a.status,0) when 0 then 'NOT NULL' ELSE 'NULL' END AS NULLABLE from syscolumns a, sysobjects b, systypes c where a.id = b.id and a.usertype = c.usertype and b.name= 'TargetTable' order by a.colid