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