SQLSERVER+ORACLE+MYSQL(MARIADB)自定义查询表名、列(字段)名、数据类型、表备注、列备注等
SQLSERVER
SELECT 表名 = CASE WHEN A.COLORDER = 1 THEN D.NAME ELSE '' END, 索引 = J.NAME, 表数据行数 = O.HS, 表说明 = CASE WHEN A.COLORDER = 1 THEN ISNULL(F.VALUE, '') ELSE '' END, 字段序号 = A.COLORDER, 字段名 = A.NAME, 标识 = CASE WHEN COLUMNPROPERTY(A.ID, A.NAME, 'IsIdentity') = 1 THEN '√' ELSE '' END, 主键 = CASE WHEN EXISTS (SELECT 1 FROM SYSOBJECTS WHERE XTYPE = 'PK' AND PARENT_OBJ = A.ID AND NAME IN (SELECT NAME FROM SYSINDEXES WHERE INDID IN (SELECT INDID FROM SYSINDEXKEYS WHERE ID = A.ID AND COLID = A.COLID))) THEN '√' ELSE '' END, 类型 = B.NAME, 占用字节数 = A.LENGTH, 长度 = COLUMNPROPERTY(A.ID, A.NAME, 'PRECISION'), 小数位数 = ISNULL(COLUMNPROPERTY(A.ID, A.NAME, 'Scale'), 0), 允许空 = CASE WHEN A.ISNULLABLE = 1 THEN '√' ELSE '' END, 默认值 = ISNULL(E.TEXT, ''), 字段说明 = ISNULL(G.[value], '') FROM SYSCOLUMNS A LEFT JOIN SYSTYPES B ON A.XUSERTYPE = B.XUSERTYPE INNER JOIN SYSOBJECTS D ON A.ID = D.ID AND D.XTYPE = 'U' AND D.NAME <> 'dtproperties' LEFT JOIN SYSCOMMENTS E ON A.CDEFAULT = E.ID LEFT JOIN SYS.EXTENDED_PROPERTIES G ON A.ID = G.MAJOR_ID AND A.COLID = G.MINOR_ID LEFT JOIN SYS.EXTENDED_PROPERTIES F ON D.ID = F.MAJOR_ID AND F.MINOR_ID = 0 LEFT JOIN (SELECT A.NAME, B.ROWS AS HS FROM SYSOBJECTS A INNER JOIN SYSINDEXES B ON A.ID = B.ID WHERE A.TYPE = 'u' AND B.INDID IN (0, 1)) O ON (D.NAME = O.NAME) LEFT JOIN SYS.OBJECTS AS H ON D.NAME = H.NAME LEFT JOIN SYS.INDEXES AS J ON H.OBJECT_ID = J.OBJECT_ID WHERE H.TYPE <> 's' ORDER BY A.ID, A.COLORDER
ORACLE
SELECT D.TABLE_NAME TBNAME, COALESCE(T.COMMENTS, ' ') TBDESC, A.COLUMN_NAME COLUMNNAME, A.DATA_TYPE COLUMNTYPE, A.DATA_LENGTH WIDTH, A.DATA_SCALE PRECISION, D.NUM_ROWS, DECODE(A.NULLABLE, 'Y', '0', '1') NOTNULL, COALESCE(M.COMMENTS, ' ') COMMENTS, DECODE(K.UNIQUENESS, 'UNIQUE', '1', '0') UNIQUES, COALESCE(K.INDEX_NAME, ' ') INDEXNAME, DECODE(K.KEY, 'Y', '1', '0') MASTERKEY FROM USER_TAB_COLUMNS A INNER JOIN USER_TABLES D ON A.TABLE_NAME = D.TABLE_NAME LEFT JOIN USER_TAB_COMMENTS T ON T.TABLE_NAME = D.TABLE_NAME LEFT JOIN USER_COL_COMMENTS M ON M.COLUMN_NAME = A.COLUMN_NAME AND M.TABLE_NAME = D.TABLE_NAME LEFT JOIN (SELECT E.INDEX_NAME, U.TABLE_NAME, U.COLUMN_NAME, E.UNIQUENESS, DECODE(P.CONSTRAINT_NAME, NULL, 'N', 'Y') KEY FROM USER_INDEXES E INNER JOIN USER_IND_COLUMNS U ON E.INDEX_NAME = U.INDEX_NAME LEFT JOIN (SELECT CONSTRAINT_NAME FROM USER_CONSTRAINTS WHERE CONSTRAINT_TYPE = 'P') P ON E.INDEX_NAME = P.CONSTRAINT_NAME) K ON K.TABLE_NAME = A.TABLE_NAME AND K.COLUMN_NAME = A.COLUMN_NAME ORDER BY TBNAME
MYSQL/MARIADB
SELECT (CASE ORDINAL_POSITION WHEN 1 THEN TABLE_NAME ELSE '' END) '库名', ORDINAL_POSITION AS '列的排列顺序', COLUMN_COMMENT AS '注释', COLUMN_NAME AS '列名', IS_NULLABLE AS '是否为空', DATA_TYPE AS '数据类型', CHARACTER_MAXIMUM_LENGTH AS '字符最大长度', COLUMN_DEFAULT AS '默认值', NUMERIC_PRECISION AS '数值精度(最大位数)', NUMERIC_SCALE AS '小数精度', COLUMN_TYPE AS 列类型, COLUMN_KEY 'KEY', EXTRA AS '额外说明' FROM INFORMATION_SCHEMA. `COLUMNS` WHERE TABLE_SCHEMA = :tableSchema ORDER BY TABLE_NAME, ORDINAL_POSITION;
骑着母猪去打猎的备忘录,如有侵权请联系本人骑着母猪去打猎删除。https://www.cnblogs.com/shichq/p/16449534.html
如果本文对您有所帮助,麻烦在下面评论里面随便敲上那么几下键盘,谢谢了
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· C#/.NET/.NET Core优秀项目和框架2025年2月简报