生成mysql資料庫字典 快速生成資料庫字典

2021-10-20 00:19:29 字數 3001 閱讀 7504

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_i

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

--select * from sys.databases

0203 生成mysql的資料庫的資料字典

專案的資料庫字典表是乙個很重要的文件。通過此文件可以清晰的了解資料表結構及開發者的設計意圖。通常為了方便我都是直接在資料庫中建表,然後通過工具匯出資料字典。在mysql資料庫中有乙個information schema庫,它提供了訪問資料庫元資料的方式。什麼是元資料呢?就是關於資料的資料,如資料庫名...

自動生成資料庫字典

1.首先需要填寫表的每一列的說明 2.建立試圖 go object view dbo sura view dbdictionary script date 05 31 2013 17 19 19 set ansi nulls on goset quoted identifier on gocreat...

生成資料庫字典SQL

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