通过查询系统表得到纵向的表结构
 SELECT
SELECT  表名=case when a.colorder=1 then d.name else '' end,
表名=case when a.colorder=1 then d.name else '' end, 表说明=case when a.colorder=1 then isnull(f.value,'') else '' end,
表说明=case when a.colorder=1 then isnull(f.value,'') else '' end, 字段序号=a.colorder,
字段序号=a.colorder, 字段名=a.name,
字段名=a.name, 标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end,
标识=case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else '' end, 主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in (
主键=case when exists(SELECT 1 FROM sysobjects where xtype='PK' and name in ( SELECT name FROM sysindexes WHERE indid in(
SELECT name FROM sysindexes WHERE indid in( SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid ))) then '√' else '' end,
))) then '√' else '' end, 类型=b.name,
类型=b.name, 占用字节数=a.length,
占用字节数=a.length, 长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
长度=COLUMNPROPERTY(a.id,a.name,'PRECISION'), 小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
小数位数=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0), 允许空=case when a.isnullable=1 then '√'else '' end,
允许空=case when a.isnullable=1 then '√'else '' end, 默认值=isnull(e.text,''),
默认值=isnull(e.text,''), 字段说明=isnull(g.[value],'')
字段说明=isnull(g.[value],'') FROM syscolumns a
FROM syscolumns a left join systypes b on a.xusertype=b.xusertype
left join systypes b on a.xusertype=b.xusertype inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties'
inner join sysobjects d on a.id=d.id  and d.xtype='U' and  d.name<>'dtproperties' left join syscomments e on a.cdefault=e.id
left join syscomments e on a.cdefault=e.id left join sysproperties g on a.id=g.id and a.colid=g.smallid
left join sysproperties g on a.id=g.id and a.colid=g.smallid   left join sysproperties f on d.id=f.id and f.smallid=0
left join sysproperties f on d.id=f.id and f.smallid=0 --where d.name='orders'    --如果只查询指定表,加上此条件
--where d.name='orders'    --如果只查询指定表,加上此条件 order by a.id,a.colorder
order by a.id,a.colorder
 select * from syscolumns
select * from syscolumns--如果是要得到纵向的表结构,可以查询系统表 可以通过上面的方法实现
以上仅对Sql 2000适用
2005里面查询表结构
 --.表结构信息查询 表结构信息查询
--.表结构信息查询 表结构信息查询 SELECT
SELECT  TableName=CASE WHEN C.column_id=1 THEN O.name ELSE N'' END,
TableName=CASE WHEN C.column_id=1 THEN O.name ELSE N'' END, TableDesc=ISNULL(CASE WHEN C.column_id=1 THEN PTB.[value] END,N''),
TableDesc=ISNULL(CASE WHEN C.column_id=1 THEN PTB.[value] END,N''), Column_id=C.column_id,
Column_id=C.column_id, ColumnName=C.name,
ColumnName=C.name, PrimaryKey=ISNULL(IDX.PrimaryKey,N''),
PrimaryKey=ISNULL(IDX.PrimaryKey,N''), [IDENTITY]=CASE WHEN C.is_identity=1 THEN N'√'ELSE N'' END,
[IDENTITY]=CASE WHEN C.is_identity=1 THEN N'√'ELSE N'' END, Computed=CASE WHEN C.is_computed=1 THEN N'√'ELSE N'' END,
Computed=CASE WHEN C.is_computed=1 THEN N'√'ELSE N'' END, Type=T.name,
Type=T.name, Length=C.max_length,
Length=C.max_length, Precision=C.precision,
Precision=C.precision, Scale=C.scale,
Scale=C.scale, NullAble=CASE WHEN C.is_nullable=1 THEN N'√'ELSE N'' END,
NullAble=CASE WHEN C.is_nullable=1 THEN N'√'ELSE N'' END, [Default]=ISNULL(D.definition,N''),
[Default]=ISNULL(D.definition,N''), ColumnDesc=ISNULL(PFD.[value],N''),
ColumnDesc=ISNULL(PFD.[value],N''), IndexName=ISNULL(IDX.IndexName,N''),
IndexName=ISNULL(IDX.IndexName,N''), IndexSort=ISNULL(IDX.Sort,N''),
IndexSort=ISNULL(IDX.Sort,N''), Create_Date=O.Create_Date,
Create_Date=O.Create_Date, Modify_Date=O.Modify_date
Modify_Date=O.Modify_date FROM sys.columns C
FROM sys.columns C INNER JOIN sys.objects O
INNER JOIN sys.objects O ON C.[object_id]=O.[object_id]
ON C.[object_id]=O.[object_id] AND O.type='U'
AND O.type='U' AND O.is_ms_shipped=0
AND O.is_ms_shipped=0 INNER JOIN sys.types T
INNER JOIN sys.types T ON C.user_type_id=T.user_type_id
ON C.user_type_id=T.user_type_id LEFT JOIN sys.default_constraints D
LEFT JOIN sys.default_constraints D ON C.[object_id]=D.parent_object_id
ON C.[object_id]=D.parent_object_id AND C.column_id=D.parent_column_id
AND C.column_id=D.parent_column_id AND C.default_object_id=D.[object_id]
AND C.default_object_id=D.[object_id] LEFT JOIN sys.extended_properties PFD
LEFT JOIN sys.extended_properties PFD ON PFD.class=1
ON PFD.class=1  AND C.[object_id]=PFD.major_id
AND C.[object_id]=PFD.major_id  AND C.column_id=PFD.minor_id
AND C.column_id=PFD.minor_id --             AND PFD.name='Caption'  -- 字段说明对应的描述名称(一个字段可以添加多个不同name的描述)
--             AND PFD.name='Caption'  -- 字段说明对应的描述名称(一个字段可以添加多个不同name的描述) LEFT JOIN sys.extended_properties PTB
LEFT JOIN sys.extended_properties PTB ON PTB.class=1
ON PTB.class=1  AND PTB.minor_id=0
AND PTB.minor_id=0  AND C.[object_id]=PTB.major_id
AND C.[object_id]=PTB.major_id --             AND PFD.name='Caption'  -- 表说明对应的描述名称(一个表可以添加多个不同name的描述)
--             AND PFD.name='Caption'  -- 表说明对应的描述名称(一个表可以添加多个不同name的描述)   LEFT JOIN                       -- 索引及主键信息
LEFT JOIN                       -- 索引及主键信息 (
( SELECT
SELECT  IDXC.[object_id],
IDXC.[object_id], IDXC.column_id,
IDXC.column_id, Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending')
Sort=CASE INDEXKEY_PROPERTY(IDXC.[object_id],IDXC.index_id,IDXC.index_column_id,'IsDescending') WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END,
WHEN 1 THEN 'DESC' WHEN 0 THEN 'ASC' ELSE '' END, PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END,
PrimaryKey=CASE WHEN IDX.is_primary_key=1 THEN N'√'ELSE N'' END, IndexName=IDX.Name
IndexName=IDX.Name FROM sys.indexes IDX
FROM sys.indexes IDX INNER JOIN sys.index_columns IDXC
INNER JOIN sys.index_columns IDXC ON IDX.[object_id]=IDXC.[object_id]
ON IDX.[object_id]=IDXC.[object_id] AND IDX.index_id=IDXC.index_id
AND IDX.index_id=IDXC.index_id LEFT JOIN sys.key_constraints KC
LEFT JOIN sys.key_constraints KC ON IDX.[object_id]=KC.[parent_object_id]
ON IDX.[object_id]=KC.[parent_object_id] AND IDX.index_id=KC.unique_index_id
AND IDX.index_id=KC.unique_index_id INNER JOIN  -- 对于一个列包含多个索引的情况,只显示第1个索引信息
INNER JOIN  -- 对于一个列包含多个索引的情况,只显示第1个索引信息 (
( SELECT [object_id], Column_id, index_id=MIN(index_id)
SELECT [object_id], Column_id, index_id=MIN(index_id) FROM sys.index_columns
FROM sys.index_columns GROUP BY [object_id], Column_id
GROUP BY [object_id], Column_id ) IDXCUQ
) IDXCUQ ON IDXC.[object_id]=IDXCUQ.[object_id]
ON IDXC.[object_id]=IDXCUQ.[object_id] AND IDXC.Column_id=IDXCUQ.Column_id
AND IDXC.Column_id=IDXCUQ.Column_id AND IDXC.index_id=IDXCUQ.index_id
AND IDXC.index_id=IDXCUQ.index_id ) IDX
) IDX ON C.[object_id]=IDX.[object_id]
ON C.[object_id]=IDX.[object_id] AND C.column_id=IDX.column_id
AND C.column_id=IDX.column_id  -- WHERE O.name=N'要查询的表'       -- 如果只查询指定表,加上此条件
-- WHERE O.name=N'要查询的表'       -- 如果只查询指定表,加上此条件 ORDER BY O.name,C.column_id
ORDER BY O.name,C.column_id 

Oracle 9i获得表结构
 select * from
select * from  (
( select
select all_tab_columns.column_name,
                  all_tab_columns.column_name, data_type,
                  data_type, To_Char(data_length) as data_length,
                  To_Char(data_length) as data_length,                   nullable,
                  nullable, all_col_comments.comments
                                    all_col_comments.comments from
              from all_tab_columns,
                  all_tab_columns, all_tables,
                  all_tables, all_col_comments
                  all_col_comments where
              where all_tables.table_name = upper('BLC_CHARGEUPIN_HEAD') and
                  all_tables.table_name = upper('BLC_CHARGEUPIN_HEAD') and all_tab_columns.table_name = all_tables.table_name and
                  all_tab_columns.table_name = all_tables.table_name and all_col_comments.table_name(+) =  upper('BLC_CHARGEUPIN_HEAD') and
                  all_col_comments.table_name(+) =  upper('BLC_CHARGEUPIN_HEAD') and all_tables.OWNER like upper('CMMP') and
                  all_tables.OWNER like upper('CMMP') and all_tab_columns.OWNER = all_tables.OWNER and
                  all_tab_columns.OWNER = all_tables.OWNER and         all_col_comments.column_name(+) = all_tab_columns.column_name
                  all_col_comments.column_name(+) = all_tab_columns.column_name and all_col_comments.column_name not in ('CREATED_BY','CREATED_DATE','LAST_UPDATED_BY','LAST_UPDATED_DATE','VERSION_NO','TRANSACTION_ID')
                  and all_col_comments.column_name not in ('CREATED_BY','CREATED_DATE','LAST_UPDATED_BY','LAST_UPDATED_DATE','VERSION_NO','TRANSACTION_ID') and data_type<>'NUMBER'
                  and data_type<>'NUMBER'    and all_col_comments.owner =upper('CMMP')
and all_col_comments.owner =upper('CMMP') 
 union
              union
 select
              select all_tab_columns.column_name,
                  all_tab_columns.column_name, data_type,
                  data_type, data_precision|| ',' ||data_scale  as data_length,
                  data_precision|| ',' ||data_scale  as data_length,         nullable,
                  nullable, all_col_comments.comments
                                    all_col_comments.comments from
              from all_tab_columns,
                  all_tab_columns, all_tables,
                  all_tables, all_col_comments
                  all_col_comments where
              where all_tables.table_name = upper('BLC_CHARGEUPIN_HEAD') and
                  all_tables.table_name = upper('BLC_CHARGEUPIN_HEAD') and all_tab_columns.table_name = all_tables.table_name and
                  all_tab_columns.table_name = all_tables.table_name and all_col_comments.table_name(+) = upper('BLC_CHARGEUPIN_HEAD') and
                  all_col_comments.table_name(+) = upper('BLC_CHARGEUPIN_HEAD') and all_tables.OWNER like upper('CMMP') and
                  all_tables.OWNER like upper('CMMP') and all_tab_columns.OWNER = all_tables.OWNER and
                  all_tab_columns.OWNER = all_tables.OWNER and         all_col_comments.column_name(+) = all_tab_columns.column_name
                  all_col_comments.column_name(+) = all_tab_columns.column_name and all_col_comments.column_name not in ('CREATED_BY','CREATED_DATE','LAST_UPDATED_BY','LAST_UPDATED_DATE','VERSION_NO','TRANSACTION_ID')
                  and all_col_comments.column_name not in ('CREATED_BY','CREATED_DATE','LAST_UPDATED_BY','LAST_UPDATED_DATE','VERSION_NO','TRANSACTION_ID') and data_type='NUMBER'
                  and data_type='NUMBER' and all_col_comments.owner =upper('CMMP')
                  and all_col_comments.owner =upper('CMMP')  )
) where column_name='AGENT_NAME'
where column_name='AGENT_NAME'                  其中BLC_CHARGEUPIN_HEAD 是表名,CMMP 是用户名,AGENT_NAME 是列名
 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号