打开APP
userphoto
未登录

开通VIP,畅享免费电子书等14项超值服

开通VIP
通过查询系统表得到纵向的表结构
SELECT 
表名
=case when a.colorder=1 then d.name else '' end,
表说明
=case when a.colorder=1 then isnull(f.value,''else '' end,
字段序号
=a.colorder,
字段名
=a.name,
标识
=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 (
SELECT name FROM sysindexes WHERE indid in(
SELECT indid FROM sysindexkeys WHERE id = a.id AND colid=a.colid
))) 
then '' else '' end,
类型
=b.name,
占用字节数
=a.length,
长度
=COLUMNPROPERTY(a.id,a.name,'PRECISION'),
小数位数
=isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0),
允许空
=case when a.isnullable=1 then ''else '' end,
默认值
=isnull(e.text,''),
字段说明
=isnull(g.[value],'')
FROM syscolumns a
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'
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 f on d.id=f.id and f.smallid=0
--where d.name='orders'    --如果只查询指定表,加上此条件
order by a.id,a.colorder

select * from syscolumns

--如果是要得到纵向的表结构,可以查询系统表 可以通过上面的方法实现
以上仅对Sql 2000适用
2005里面查询表结构
--.表结构信息查询 表结构信息查询
SELECT 
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''),
Column_id
=C.column_id,
ColumnName
=C.name,
PrimaryKey
=ISNULL(IDX.PrimaryKey,N''),
[IDENTITY]=CASE WHEN C.is_identity=1 THEN N''ELSE N'' END,
Computed
=CASE WHEN C.is_computed=1 THEN N''ELSE N'' END,
Type
=T.name,
Length
=C.max_length,
Precision=C.precision,
Scale
=C.scale,
NullAble
=CASE WHEN C.is_nullable=1 THEN N''ELSE N'' END,
[Default]=ISNULL(D.definition,N''),
ColumnDesc
=ISNULL(PFD.[value],N''),
IndexName
=ISNULL(IDX.IndexName,N''),
IndexSort
=ISNULL(IDX.Sort,N''),
Create_Date
=O.Create_Date,
Modify_Date
=O.Modify_date
FROM sys.columns C
INNER JOIN sys.objects O
ON C.[object_id]=O.[object_id]
AND O.type='U'
AND O.is_ms_shipped=0
INNER JOIN sys.types T
ON C.user_type_id=T.user_type_id
LEFT JOIN sys.default_constraints D
ON C.[object_id]=D.parent_object_id
AND C.column_id=D.parent_column_id
AND C.default_object_id=D.[object_id]
LEFT JOIN sys.extended_properties PFD
ON PFD.class=1 
AND C.[object_id]=PFD.major_id 
AND C.column_id=PFD.minor_id
--             AND PFD.name='Caption'  -- 字段说明对应的描述名称(一个字段可以添加多个不同name的描述)
LEFT JOIN sys.extended_properties PTB
ON PTB.class=1 
AND PTB.minor_id=0 
AND C.[object_id]=PTB.major_id
--             AND PFD.name='Caption'  -- 表说明对应的描述名称(一个表可以添加多个不同name的描述)  
LEFT JOIN                       -- 索引及主键信息
(
SELECT 
IDXC.
[object_id],
IDXC.column_id,
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,
PrimaryKey
=CASE WHEN IDX.is_primary_key=1 THEN N''ELSE N'' END,
IndexName
=IDX.Name
FROM sys.indexes IDX
INNER JOIN sys.index_columns IDXC
ON IDX.[object_id]=IDXC.[object_id]
AND IDX.index_id=IDXC.index_id
LEFT JOIN sys.key_constraints KC
ON IDX.[object_id]=KC.[parent_object_id]
AND IDX.index_id=KC.unique_index_id
INNER JOIN  -- 对于一个列包含多个索引的情况,只显示第1个索引信息
(
SELECT [object_id], Column_id, index_id=MIN(index_id)
FROM sys.index_columns
GROUP BY [object_id], Column_id
) IDXCUQ
ON IDXC.[object_id]=IDXCUQ.[object_id]
AND IDXC.Column_id=IDXCUQ.Column_id
AND IDXC.index_id=IDXCUQ.index_id
) IDX
ON C.[object_id]=IDX.[object_id]
AND C.column_id=IDX.column_id 
-- WHERE O.name=N'要查询的表'       -- 如果只查询指定表,加上此条件
ORDER BY O.name,C.column_id 


Oracle  9i获得表结构
select * from 
(
select
                  all_tab_columns.column_name,
                  data_type,
                  To_Char(data_length) 
as data_length,                  
                  nullable,
                                    all_col_comments.comments
              
from
                  all_tab_columns,
                  all_tables,
                  all_col_comments
              
where
                  all_tables.table_name 
= upper('BLC_CHARGEUPIN_HEAD'and
                  all_tab_columns.table_name 
= all_tables.table_name and
                  all_col_comments.table_name(
+=  upper('BLC_CHARGEUPIN_HEAD'and
                  all_tables.OWNER 
like upper('CMMP'and
                  all_tab_columns.OWNER 
= all_tables.OWNER and        
                  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 data_type<>'NUMBER'   
and all_col_comments.owner =upper('CMMP'

              
union

              
select
                  all_tab_columns.column_name,
                  data_type,
                  data_precision
|| ',' ||data_scale  as data_length,        
                  nullable,
                                    all_col_comments.comments
              
from
                  all_tab_columns,
                  all_tables,
                  all_col_comments
              
where
                  all_tables.table_name 
= upper('BLC_CHARGEUPIN_HEAD'and
                  all_tab_columns.table_name 
= all_tables.table_name and
                  all_col_comments.table_name(
+= upper('BLC_CHARGEUPIN_HEAD'and
                  all_tables.OWNER 
like upper('CMMP'and
                  all_tab_columns.OWNER 
= all_tables.OWNER and        
                  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 data_type='NUMBER'
                  
and all_col_comments.owner =upper('CMMP'
)
where column_name='AGENT_NAME'                  

其中BLC_CHARGEUPIN_HEAD 是表名,CMMP 是用户名,AGENT_NAME 是列名
本站仅提供存储服务,所有内容均由用户发布,如发现有害或侵权内容,请点击举报
打开APP,阅读全文并永久保存 查看更多类似文章
猜你喜欢
类似文章
【热】打开小程序,算一算2024你的财运
如何通过sql语句取得某个用户表的字段名称 字段类型
神器与经典--sp_helpIndex
Sql Server根据表名获取表的所有列及属性
获取数据库中用户表所有列和列的数据类型
怎么取得表中字段的说明,select * from syscolumns where id = object
Oracle IO问题解析——3
更多类似文章 >>
生活服务
热点新闻
分享 收藏 导长图 关注 下载文章
绑定账号成功
后续可登录账号畅享VIP特权!
如果VIP功能使用有故障,
可点击这里联系客服!

联系客服