[MSSQL]匯出資料表內欄位說明

有關資料庫的討論, 都可以在這發表哦~~
回覆文章
頭像
tim
文章: 1296
註冊時間: 2008年 11月 26日, 00:49

[MSSQL]匯出資料表內欄位說明

文章 tim » 2018年 4月 9日, 14:08

參考資料: http://alvisprogramming.blogspot.tw/201 ... chema.html

代碼: 選擇全部

 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 
多多留言, 整理文章, 把經驗累積下來.....

YY25

Re: [MSSQL]匯出資料表內欄位說明

文章 YY25 » 2018年 4月 9日, 15:29

fn_listextendedproperty function 回傳的value 要在轉型為varchar,不然可能在java 或 python 得到
The "variant" data type is not supported. [SQL State=08S01]的錯誤,因此而中斷連線。

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 Convert(varchar(500),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

頭像
tim
文章: 1296
註冊時間: 2008年 11月 26日, 00:49

Re: [MSSQL]匯出資料表內欄位說明

文章 tim » 2019年 4月 9日, 13:29

:D
多多留言, 整理文章, 把經驗累積下來.....

回覆文章