SELECT
remarks.column_name,-- 字段名称columns.DATA_TYPE,-- 数据类型columns.PRI,-- 键标记
remarks.remark -- 字段备注FROM(SELECT
sc.name AS column_name,
sep.valueAS remark -- 字段备注FROM sys.tables st
INNERJOIN sys.columns sc ON st.object_id = sc.object_id
LEFTJOIN sys.extended_properties sep ON st.object_id = sep.major_id
AND sc.column_id = sep.minor_id
AND sep.name ='MS_Description'WHERE st.name ='CB_COST_ITEM'-- 表名称) remarks
LEFTJOIN(SELECTDISTINCT
T1.COLUMN_NAME,
T1.DATA_TYPE,
T2.PRI
FROM(SELECT
COLUMN_NAME,
DATA_TYPE
FROM INFORMATION_SCHEMA.COLUMNSWHERE TABLE_NAME ='CB_COST_ITEM') T1
LEFTJOIN(SELECT
COLUMN_NAME,'PRI'AS PRI
FROM INFORMATION_SCHEMA.KEY_COLUMN_USAGE
WHERE TABLE_NAME ='CB_COST_ITEM'AND CONSTRAINT_NAME LIKE'PK%') T2 ON T2.COLUMN_NAME = T1.COLUMN_NAME
)columnsONcolumns.COLUMN_NAME = remarks.column_name;
查询表的键字段信息
SELECT
col.name AS ColumnName -- 键字段的名称FROM sys.indexes ind
INNERJOIN sys.index_columns ic ON ind.object_id = ic.object_id AND ind.index_id = ic.index_id
INNERJOIN sys.columns col ON ic.object_id = col.object_id AND ic.column_id = col.column_id
INNERJOIN sys.tables t ON ind.object_id = t.object_id
WHERE ind.is_primary_key =0AND ind.is_unique =0AND ind.is_unique_constraint =0AND t.is_ms_shipped =0AND t.name ='CB_COST_ITEM';-- 表名称
查询表名或视图名
SELECT TABLE_NAME
FROM INFORMATION_SCHEMA.TABLESORDERBY TABLE_NAME;-- 按表名排序