使用T-SQL 匯出 DB Schema

如標題,引用 alvis大大的文章做參考

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 



-------------------------------------------這是指令碼------------------------------------------------------

簡單介紹一下上面的語法

--INFORMATION_SCHEMA.TABLES //查詢該資料庫裡所有資料表資訊

--INFORMATION_SCHEMA.COLUMNS  //查詢該資料表裡所有資料欄位資訊

--fn_listextendedproperty //列出資料表欄位的資訊(為了取得 欄位描述 而使用)

--※Chinese_Taiwan_Stroke_CI_AS  //這是指定資料庫的編碼(此為 台灣繁體中文且不分大小寫)

 

 

參考網址

http://alvisprogramming.blogspot.com/2014/12/t-sql-db-schema.html

以上文章僅用紀錄資料使用.....