나의질문답

msslq 엑셀 데이터

예쁜꽃이피었으면 2015. 5. 15. 16:13

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

반응형