sql查询表结构.docx

上传人:牧羊曲112 文档编号:3166130 上传时间:2023-03-11 格式:DOCX 页数:7 大小:38.04KB
返回 下载 相关 举报
sql查询表结构.docx_第1页
第1页 / 共7页
sql查询表结构.docx_第2页
第2页 / 共7页
sql查询表结构.docx_第3页
第3页 / 共7页
sql查询表结构.docx_第4页
第4页 / 共7页
sql查询表结构.docx_第5页
第5页 / 共7页
亲,该文档总共7页,到这儿已超出免费预览范围,如果喜欢就下载吧!
资源描述

《sql查询表结构.docx》由会员分享,可在线阅读,更多相关《sql查询表结构.docx(7页珍藏版)》请在三一办公上搜索。

1、sql查询表结构sql查询表结构(转) -新建一张表后,会将所有与表有关的信息写入该数据库下面的某张系统表, sysobjects, syscolumns, systypes 是其中三张 SELECT SO.name as 表名, SC.name as 表列名, SC.colid as 索引, ST.name as 类型 FROM sysobjects SO, - 对象表 syscolumns SC, - 列名表 systypes ST - 数据类型表 WHERE SO.id = SC.id AND SO.xtype = U - 类型U表示表,V表示视图 AND SO.status = 0 -

2、加一个条件:SO.status = 0,否则会将系统的临时表显示出来 AND SC.xtype = ST.xusertype ORDER BY SO.name, SC.colorder - 按表名、列名排序 - SELECT SO.name 表名, SC.name 表列名, SC.colid 索引, ST.name 类型 FROM sysobjects SO, - 对象表 syscolumns SC, - 列名表 systypes ST - 数据类型表 CliqueClient WHERE SO.id = SC.id AND SO.xtype = U - 类型U表示表,V表示视图 AND SO

3、.status = 0 - status = 0 为非系统对象 AND SC.xtype = ST.xusertype AND SO.name = CliqueClient - 某张特定表 ORDER BY SO.name, SC.colorder - 按表名、列名排序 查询指定数据表中的所有列的列名: SELECT name FROM syscolumns WHERE id = object_id(Your Table Name) ORDER BY colorder 查询指定数据表中的所有列的列名和数据类型名: SELECT C.name AS ColumnName, T.name AS C

4、olumnType FROM syscolumns C LEFT JOIN systypes T ON C.xusertype = T.xusertype WHERE C.id = object_id(Your Table Name) 索引及主键信息 Select TableId=O.object_id, TableName=O.Name, IndexId=ISNULL(KC.object_id,IDX.index_id), IndexName=IDX.Name, IndexType=ISNULL(KC.type_desc,Index), Index_Column_id=IDXC.index_

5、column_id, ColumnID=C.Column_id, ColumnName=C.Name, 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 NELSE N END, UQIQUE=CASE WHEN IDX.is_unique=1 THEN NELSE N END, Ig

6、nore_dup_key=CASE WHEN IDX.ignore_dup_key=1 THEN NELSE N END, Disabled=CASE WHEN IDX.is_disabled=1 THEN NELSE N END, Fill_factor=IDX.fill_factor, Padded=CASE WHEN IDX.is_padded=1 THEN NELSE N END FROM sys.indexes IDX INNER JOIN sys.index_columns IDXC ON IDX.object_id=IDXC.object_id AND IDX.index_id=

7、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 sys.objects O ON O.object_id=IDX.object_id INNER JOIN sys.columns C ON O.object_id=C.object_id AND O.type=U AND O.is_ms_shipped=0 AND IDXC.Column_id=C.Column_id - INNER

8、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 -表结构信息查询 Select TableName=CASE WHEN C.column_id=1 THEN O.name ELSE

9、 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 NELSE N END, Computed=CASE WHEN C.is_computed=1 THEN NELSE N END, Type=T.name, Length=C.max_length, Precision

10、=C.precision, Scale=C.scale, NullAble=CASE WHEN C.is_nullable=1 THEN NELSE 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.ob

11、jects 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

12、 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 JO

13、IN - 索引及主键信息 ( 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 NELSE N END, IndexName=IDX.Name FROM sys.indexes IDX INNER JOIN

14、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

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 生活休闲 > 在线阅读


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号