[收藏]取得数据库字典的sql语句
--MS SQL SERVER 2000 取得所有表和视图的名称、字段名、字段类型、说明、长度等
SELECT sysobjects.name AS TableName, sysproperties.[value] AS 表说明,
syscolumns.name AS FieldName, properties.[value] AS 字段说明, systypes.name AS FieldType,
syscolumns.length, ISNULL(COLUMNPROPERTY(syscolumns.id, syscolumns.name,
'Scale'), 0) AS 小数位数, syscolumns.isnullable AS isnull,
CASE WHEN syscomments.text IS NULL
THEN '' ELSE syscomments.text END AS [Default],
CASE WHEN COLUMNPROPERTY(syscolumns.id, syscolumns.name, 'IsIdentity')
= 1 THEN '1' ELSE '' END AS 标识, CASE WHEN EXISTS
(SELECT 1
FROM sysobjects
WHERE xtype = 'PK' AND name IN
(SELECT name
FROM sysindexes
WHERE indid IN
(SELECT indid
FROM sysindexkeys
WHERE id = syscolumns.id AND colid = syscolumns.colid)))
THEN '1' ELSE '' END AS 主键
FROM syscolumns INNER JOIN
sysobjects ON sysobjects.id = syscolumns.id INNER JOIN
systypes ON syscolumns.xtype = systypes.xtype LEFT OUTER JOIN
sysproperties properties ON syscolumns.id = properties.id AND
syscolumns.colid = properties.smallid LEFT OUTER JOIN
sysproperties ON sysobjects.id = sysproperties.id AND
sysproperties.smallid = 0 LEFT OUTER JOIN
syscomments ON syscolumns.cdefault = syscomments.id
WHERE (sysobjects.xtype = 'U' OR sysobjects.xtype = 'V')
--MS SQL SERVER 2000 取得所有表和视图的名称、字段名、字段类型
SELECT dbo.sysobjects.name AS TableName, dbo.syscolumns.name AS FieldName,
dbo.systypes.name AS FieldType, '' AS FieldDesc
FROM dbo.syscolumns INNER JOIN
dbo.sysobjects ON dbo.sysobjects.id = dbo.syscolumns.id INNER JOIN
dbo.systypes ON dbo.syscolumns.xtype = dbo.systypes.xtype
WHERE ((dbo.sysobjects.xtype = 'U') OR (dbo.sysobjects.xtype = 'V')) and dbo.systypes.name <> 'sysname'
--FireBird 取得所有表和视图的名称、字段名、字段类型等
SELECT T2.RDB$RELATION_NAME AS TABLENAME,
T2.RDB$FIELD_NAME AS FIELDNAME,
CASE T1.RDB$FIELD_TYPE WHEN 7 THEN 'SMALLINT'
WHEN 8 THEN 'INTEGER'
WHEN 10 THEN 'FLOAT'
WHEN 12 THEN 'DATE'
WHEN 13 THEN 'TIME'
WHEN 14 THEN 'CHAR'
WHEN 16 THEN 'DECIMAL'
WHEN 27 THEN 'DOUBLE'
WHEN 35 THEN 'TIMESTAMP'
WHEN 37 THEN 'VARCHAR'
WHEN 261 THEN 'BLOB'
ELSE 'UNKNOW'
END AS FIELDTYPE
FROM RDB$FIELDS T1, RDB$RELATION_FIELDS T2
WHERE T1.RDB$SYSTEM_FLAG = 0 AND T1.RDB$FIELD_NAME = T2.RDB$FIELD_SOURCE
--Oracle取得所有表和视图的名称、字段名、字段类型:
select TABLE_NAME as TableName, COLUMN_NAME AS FieldName, DATA_TYPE AS FieldType
from user_tab_columns
--PostgreSQL取得所有表和视图的名称、字段名、字段类型:
SELECT TABLE_NAME as TableName, COLUMN_NAME AS FieldName, DATA_TYPE AS FieldType
FROM information_schema.columns
WHERE table_schema='public'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本