mssql의 내용을 엑셀로 만들고 싶습니다.
안녕하세요.
제목대로 입니다.
mssql을 이용중이고요. 테이블이며 데이터며 다 있습니다.
우선 테이블 명세서를 만들려고 하는데
테이블 개수가 세보지는 않았지만 100개는 훨씬 넘는 것 같습니다.
일일이 쓰다가 한번에 할 수 있는 방법이 있을까 싶어서 질문 올립니다.
뒤늦게 문서화를 하려니까 막막하네요.
방법아시면 알려주셨으면 좋겠습니다~
예전에 저도 작성해야될 경우가 있었는데요..
mssql table description query
이걸로 검색해보시면 html 이나 엑셀로 문서화해주는 프로시져가 있을겁니다..
description 만 잘 정의되어 있으면 문서화는 한번에 해줬던 거 같아요..
http://ggjeong.tistory.com/300
링크가 있어서 올려 드려요,
저도 저거 비슷한거를 편집해서 썼던거 같네요.
sp_table_spec.sql
근데 이거 사용할 줄 모르겠음.
MSsql==============
select e.table_name, e.column_order, e.coulmn_name,
(select cast(isnull(p.[value],'') as varchar)
from sys.extended_properties p
inner join sys.columns c on p.major_id = c.object_id and p.minor_id = c.column_id
inner join sys.objects tb on tb.object_id = c.object_id
where c.name like '%' and p.class = 1 and p.name = 'MS_Description'
and tb.name = e.table_name
and c.name = e.coulmn_name) as remark,
e.data_type, e.data_length,
(case when e.data_scale is null then ' ' else convert(varchar(20),e.data_scale,101) end) data_scale,
e.nullable,
(case when
(select 'Y' from sys.indexes i, sys.index_columns ic
where i.is_primary_key = '1'
and i.object_id = e.id
and i.object_id = ic.object_id
and i.index_id = ic.index_id
and ic.index_column_id = e.colid) is null then ' ' else 'Y' end) Pk
from
(select c.id, c.table_name, c.colid, c.coulmn_name, c.colorder column_order, d.name data_type, c.prec data_length, c.scale data_scale,
(case when c.isnullable = 0 then 'N' else 'Y' end) nullable, c.cdefault
from ( select a.id ,a.name table_name, b.colid, b.name coulmn_name, b.colorder, b.prec, b.scale, b.isnullable, b.cdefault, b.xtype
from dbo.sysobjects A, dbo.syscolumns B
where a.id = b.id
and a.type = 'U' ) C
left outer join dbo.systypes D
on c.xtype = d.xtype
and d.name <> 'sysname' ) E left outer join dbo.syscomments F
on e.cdefault = f.id
order by e.table_name, e.column_order