顯示資料庫中的表結構 新增了索引及表的描述資訊

2021-08-21 22:47:59 字數 1957 閱讀 4035

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],''),

索引名稱=isnull(h.索引名稱,''),

索引順序=isnull(h.排序,'')

from syscolumns a

left join systypes b on a.xtype=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

left join(--這部分是索引資訊,如果要顯示索引與表及字段的對應關係,可以只要此部分

select 索引名稱=a.name,c.id,d.colid

,排序=case indexkey_property(c.id,b.indid,b.keyno,'isdescending')

when 1 then '降序' when 0 then '公升序' end

from sysindexes a

join sysindexkeys b on a.id=b.id and a.indid=b.indid

join (--這裡的作用是有多個索引時,取索引號最小的那個

select id,colid,indid=min(indid) from sysindexkeys

group by id,colid) b1 on b.id=b1.id and b.colid=b1.colid and b.indid=b1.indid

join sysobjects c on b.id=c.id and c.xtype='u' and c.name<>'dtproperties'

join syscolumns d on b.id=d.id and b.colid=d.colid

where a.indid not in(0,255)

) h on a.id=h.id and a.colid=h.colid

--where d.name='要查詢的表' --如果只查詢指定表,加上此條件

order by a.id,a.colorder

顯示資料庫中的表結構 新增了索引及表的描述資訊

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 ...

顯示資料庫中的表結構 新增了索引及表的描述資訊

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 ...

顯示資料庫中的表結構 新增了索引及表的描述資訊

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 ...