--資料庫裏的所有欄位
SELECT * FROM Information_Schema.COLUMNS
--目前資料庫中的索引鍵。
SELECT * FROM Information_Schema.KEY_COLUMN_USAGE
--目前使用者在目前資料庫中可以存取的資料表
SELECT * FROM Information_Schema.TABLES
--目前資料庫中的資料表條件約束
SELECT * FROM Information_Schema.TABLE_CONSTRAINTS
--目前資料庫中的外部條件約束
SELECT * FROM Information_Schema.REFERENTIAL_CONSTRAINTS
--查詢資料庫 TABLE COLUMN 內容語法
--這是利用SQL函式查詢,::後面表示為函式
SELECT * FROM ::fn_listextendedproperty (NULL, 'user', 'dbo', 'table', N'table name', 'column', N'column name')
--最後整理出來查詢的TABLE比較接近平常我查詢ORCALE的方式
SELECT tab.name table_name,
col.colid column_id,
col.name column_name,
typ.name data_type,
col.prec PRECISION,
col.scale scale,
col.length,
com.TEXT default_value,
CASE
WHEN col.isnullable = 1 THEN 'Y'
ELSE 'N'
END is_nullable,
CASE
WHEN col.status & 0X80 = 0X80 THEN 'Y'
ELSE 'N'
END is_identity,
(SELECT VALUE
FROM Fn_listextendedproperty (NULL, 'schema', 'dbo', 'table',
tab.name,'column', col.name)) DESCRIPTION
FROM sysobjects tab
LEFT OUTER JOIN syscolumns col ON(tab.id = col.id )
LEFT OUTER JOIN syscomments com ON col.cdefault = com.id AND com.colid = 1
LEFT OUTER JOIN sysobjects obj ON com.id = obj.id
LEFT OUTER JOIN systypes typ ON(col.xusertype = typ.xusertype)
WHERE tab.xtype = 'U'
AND tab.name='TABL ENAME'
--使用以下指令查詢出要找的Table Schema
SELECT
a.TABLE_NAME as 表格名稱,
b.COLUMN_NAME as 欄位名稱,
b.DATA_TYPE as 資料型別,
b.CHARACTER_MAXIMUM_LENGTH as 最大長度,
b.COLUMN_DEFAULT as 預設值,
b.IS_NULLABLE as 允許空值,
(
SELECT value
FROM fn_listextendedproperty (NULL, 'schema', 'dbo', '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'
AND a.TABLE_NAME='TABL ENAME'
ORDER BY a.TABLE_NAME, ordinal_position
blogspot.com-GA4
星期五, 5月 01, 2020
【MSSQL】查詢MSSQL 的資料欄位描述
查詢MSSQL 的資料欄位描述
訂閱:
發佈留言 (Atom)
沒有留言:
發佈留言