# SQL 全域搜尋語法 ###### tags: `軟體語法筆記` ## 一、SQL SERVER ### 查某 table 的欄位資料(可自行調整) ``` # 請先 USE 到要查詢的 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 = 'UCAR_CNTRT_DTL ' ORDER BY a.TABLE_NAME, ordinal_position ``` ## 二、ORACLE ### 查所有資料表的內容(可自行調整) ``` SELECT A.OWNER AS TABLE_OWNER ,A.TABLE_NAME ,REPLACE(C.COMMENTS,CHR(10),' ') AS TABLE_COMMENTS ,A.COLUMN_NAME ,A.DATA_TYPE ,A.DATA_LENGTH ,A.DATA_SCALE ,A.COLUMN_ID AS COLUMN_POSITION ,REPLACE(B.COMMENTS,CHR(10),' ') AS COLUMN_COMMENTS ,MAX(D.INDEX_NAME) AS INDX_NME_MAX ,MAX(F.CONSTRAINT_NAME) AS PK_NME_MAX FROM ALL_TAB_COLUMNS A LEFT JOIN ALL_COL_COMMENTS B ON A.OWNER = B.OWNER AND A.TABLE_NAME = B.TABLE_NAME AND A.COLUMN_NAME = B.COLUMN_NAME LEFT JOIN ALL_TAB_COMMENTS C ON A.OWNER = C.OWNER AND A.TABLE_NAME = C.TABLE_NAME LEFT JOIN ALL_IND_COLUMNS D ON A.OWNER = D.TABLE_OWNER AND A.TABLE_NAME = D.TABLE_NAME AND A.COLUMN_NAME = D.COLUMN_NAME LEFT JOIN ALL_CONS_COLUMNS E ON A.OWNER = E.OWNER AND A.TABLE_NAME = E.TABLE_NAME AND A.COLUMN_NAME = E.COLUMN_NAME LEFT JOIN ALL_CONSTRAINTS F ON E.OWNER = F.OWNER AND E.CONSTRAINT_NAME = F.CONSTRAINT_NAME AND F.CONSTRAINT_TYPE = 'P' WHERE ( A.OWNER = 'FAS' AND A.TABLE_NAME IN ( 'CDC_GUAR_FUND' ) ) /* 請替換為需要的Table Name */ GROUP BY A.OWNER ,A.TABLE_NAME ,REPLACE(C.COMMENTS,CHR(10),' ') ,A.COLUMN_NAME ,A.DATA_TYPE ,A.DATA_LENGTH ,A.DATA_SCALE ,A.COLUMN_ID ,REPLACE(B.COMMENTS,CHR(10),' ') ORDER BY A.OWNER , A.TABLE_NAME , A.COLUMN_ID ; ```