SQLSERVER和ORACLE系统表获取表名 列名以及列的注释

时间:2021-11-04 21:23:09

在工作中从数据库取的数据要导出来,但是发现导出的EXCEL中列名都是字段名(英文),为此搜集资料怎么把字段名变为中文名称,而发现ORACLE和SQLSERVER(用的SQLSERVER2008R2)又有所不同,具体如下:

SQLSERVER数据库:

系统表:

---获取表的相关信息            
 select * from SYS.OBJECTS
 (说明:name:表名 object_id:表的ID)
 
 ---获取列的相关信息
 select * from SYS.COLUMNS
 (说明:name:列名 object_id:表的ID column_id:列的ID)
 
 ---获取字段的说明信息
 select * from SYS.EXTENDED_PROPERTIES
 (说明:major_id:表的ID minor_id:列的ID value:字段的说明即字段注释)

 

---获取表名、列名、列说明的查询语句

SELECT A.NAME AS '表名',B.NAME AS '列名',C.VALUE AS '列说明'
                 FROM SYS.OBJECTS A LEFT JOIN SYS.COLUMNS B ON A.OBJECT_ID=B.OBJECT_ID
                 LEFT JOIN SYS.EXTENDED_PROPERTIES C ON A.OBJECT_ID=C.MAJOR_ID

 

ORACLE数据库:

系统表:

 ---获取表名、列名、列的说明即字段注释  (如果在ORACLE中查询一个表中的字段注释,只需要查询这一个表就行了)
SELECT * FROM  USER_COL_COMMENTS
(说明:table_name:表名 column_name:字段名称 comments:字段说明即字段注释)

 

---表说明相关的信息
select * from user_tab_cols
(说明:table_name:表名 column_name:字段名称)