2017年10月17日 星期二

使用T-SQL 匯出 DB Schema (表格名稱.欄位名稱.資料型別.長度.預設值.是否允許空值.欄位描述)

USE  資料庫名稱;

SELECT a.Table_schema +'.'+a.Table_name   as 表格名稱  
       ,b.COLUMN_NAME                     as 欄位名稱  
       ,b.DATA_TYPE                       as 資料型別  
       ,isnull(b.CHARACTER_MAXIMUM_LENGTH,'') as 長度  
       ,isnull(b.COLUMN_DEFAULT,'')           as 預設值  
       ,b.IS_NULLABLE                         as 是否允許空值  
       ,( SELECT value  
          FROM fn_listextendedproperty (NULL, 'schema', a.Table_schema, 'table', a.TABLE_NAME, 'column', default)  
          WHERE name='MS_Description' and objtype='COLUMN'  
          and objname Collate Chinese_Taiwan_Stroke_CI_AS = b.COLUMN_NAME  
        ) as 欄位描述  
FROM INFORMATION_SCHEMA.TABLES  a  
 LEFT JOIN INFORMATION_SCHEMA.COLUMNS b ON a.TABLE_NAME = b.TABLE_NAME  
WHERE TABLE_TYPE='BASE TABLE'
ORDER BY a.TABLE_NAME , b.ORDINAL_POSITION


網路上找到了語法. 
可以產生DD , 但是我沒有習慣在建table 時加上描述, 就少了中文欄位的說明, 
實在是太可惜了, 找時間還是要來把資料表的說明建起來
以後做DD就直接語法匯出整理一下就好了.

資料來源: 
http://alvisprogramming.blogspot.tw/2014/12/t-sql-db-schema.html

沒有留言: