SQL提取数据库表名及字段名等信息代码示例
发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本文向大家介绍了使用SQL语句提取数据库所有表的表名、字段名的实例代码,在SQLserver 中进行了测试,具体内容如下:--查询所有用户表所有字段的特征SELECT D.Name as TableN
千家信息网最后更新 2026年11月02日SQL提取数据库表名及字段名等信息代码示例
本文向大家介绍了使用SQL语句提取数据库所有表的表名、字段名的实例代码,在SQLserver 中进行了测试,具体内容如下:
--查询所有用户表所有字段的特征SELECT D.Name as TableName, A.colorder AS ColOrder, A.name AS Name, COLUMNPROPERTY(A.ID,A.Name, 'IsIdentity') AS IsIdentity, CASE WHEN EXISTS (SELECT 1 FROM dbo.sysobjects WHERE Xtype = 'PK' AND Name IN (SELECT Name FROM sysindexes WHERE indid IN (SELECT indid FROM sysindexkeys WHERE ID = A.ID AND colid = A.colid))) THEN 1 ELSE 0 END AS 主键, B.name AS 类型, A.length AS [长度], A.xprec AS [精度], A.xscale AS [小数], CASE WHEN A.isnullable = 1 THEN 1 ELSE 0 END AS [可为空], ISNULL(E.text, ' ') AS [默认值], ISNULL(G.[value], ' ') AS [说明]FROM dbo.syscolumns A LEFT OUTER JOIN dbo.systypes B ON A.xtype = B.xusertype INNER JOIN dbo.sysobjects D ON A.id = D.id AND D.xtype = 'U' AND D.name <> 'dtproperties' LEFT OUTER JOIN dbo.syscomments E ON A.cdefault = E.id LEFT OUTER JOIN dbo.sysproperties G ON A.id = G.id AND A.colid = G.smallid--WHERE D.Name='tablename' --如果找指定表,把注释去掉ORDER BY 1, 2
------在SQLserver 2005中测试
--查询所有用户表所有字段的特征SELECT (case when a.colorder=1 then d.name else '' end) as 表名,--如果表名相同就返回空 a.colorder as 字段序号, a.name as 字段名, (case when COLUMNPROPERTY( a.id,a.name, 'IsIdentity' )=1 then '√' else '' end) as 标识, (case when (SELECT count(*) FROM sysobjects--查询主键 WHERE (name in (SELECT name FROM sysindexes WHERE (id = a.id) AND (indid in (SELECT indid FROM sysindexkeys WHERE (id = a.id) AND (colid in (SELECT colid FROM syscolumns WHERE (id = a.id) AND (name = a.name)) ))))) AND (xtype = 'PK' ))>0 then '√' else '' end) as 主键,--查询主键END b.name as 类型, a.length as 占用字节数, COLUMNPROPERTY(a.id,a.name,'PRECISION' ) as 长度, isnull(COLUMNPROPERTY(a.id,a.name,'Scale' ),0) as 小数位数, (case when a.isnullable=1 then '√' else '' end) as 允许空, isnull(e.text,'' ) as 默认值, isnull(g.[value],'' ) AS 字段说明 FROM syscolumns a left join systypes b on a.xtype=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 --where d.name='PE_U_ValliMessage' --所要查询的表 order by a.id,a.colorder
------提取某个表的字段名
SELECT(case when a.colorder=1 then d.name else '' end) N'表名',a.colorder N'字段序号',a.name N'字段名',isnull(g.[value],'') AS N'字段说明',(case when COLUMNPROPERTY( a.id,a.name,'IsIdentity')=1 then '√'else ''end) N'标识',(case when (SELECT count(*)FROM sysobjectsWHERE (name in(SELECT nameFROM sysindexesWHERE (id = a.id) AND (indid in(SELECT indidFROM sysindexkeysWHERE (id = a.id) AND (colid in(SELECT colidFROM syscolumnsWHERE (id = a.id) AND (name = a.name))))))) AND(xtype = 'PK'))>0 then '√' else '' end) N'主键',b.name N'类型',a.length N'占用字节数',COLUMNPROPERTY(a.id,a.name,'PRECISION') as N'长度',isnull(COLUMNPROPERTY(a.id,a.name,'Scale'),0) as N'小数位数',(case when a.isnullable=1 then '√'else '' end) N'允许空',isnull(e.text,'') N'默认值'FROM syscolumns aleft join systypes bon a.xtype=b.xusertypeinner join sysobjects don a.id=d.id and d.xtype='U' and d.name<>'dtproperties'left join syscomments eon a.cdefault=e.idleft join sys.extended_properties gon a.id=g.major_id AND a.colid = g.minor_id--where条件输入表名where d.name='ConsumeBillBody'order by object_name(a.id),a.colorder
总结
以上就是本文关于SQL提取数据库表名及字段名等信息代码示例的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:SQL注入原理与解决方法代码示例、MySQL删除有外键约束的表数据方法介绍、几个比较重要的MySQL变量等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!
字段
查询
代码
数据
小数
类型
长度
数据库
示例
位数
内容
字节
序号
方法
朋友
标识
特征
用户
g.
用户表
数据库的安全要保护哪些东西
数据库安全各自的含义是什么
生产安全数据库录入
数据库的安全性及管理
数据库安全策略包含哪些
海淀数据库安全审计系统
建立农村房屋安全信息数据库
易用的数据库客户端支持安全管理
连接数据库失败ssl安全错误
数据库的锁怎样保障安全
互联网科技活动banner
互联网的科技
科技和互联网公司
互联网科技公司税收优惠
互联网巨头科技公司
互联网金融 科技
互联网科技公司电话
互联网科技媒体
亿账通互联网科技
互联网科技股有哪些
中国最先进互联网科技公司
开启互联网科技时代小说
须眉科技是互联网公司吗
互联网时代科技改变生活
赶超互联网科技 微信多开
翼展科技 首家互联网医院
朱啸虎曾投资哪些互联网科技企业
互联网金融科技元年
陕西九四连强互联网科技有限公司
广州三三互联网科技有限公司
高科技互联网
互联网科技行业发展
世界互联网领先科技成果
智慧科技互联网
兼蜜互联网科技
互联网金融和金融科技
晓花互联网科技有限公司网址
健康食品互联网创新科技园项目
燊美集互联网科技有限公司
山东星卡互联网科技有限公司官网