SQL获取数据库中表信息:表名、建表时间、总行数、数据大小等

写法1(推荐)

SQL

USE [test] -- 只需修改这里的库名

SELECT  a.name table_name, -- 表名
        a.crdate crdate, -- 建表时间
        b.rows rows, -- 总行数
        8*b.reserved/1024 reserved, -- 保留大小(MB)
        rtrim(8*b.dpages/1024) used, -- 已使用大小(MB)
        8*(b.reserved-b.dpages)/1024 unused -- 未使用大小(MB)
FROM    sysobjects AS a
        INNER JOIN sysindexes AS b ON a.id = b.id
WHERE   ( a.type = 'u' )
        AND ( b.indid IN ( 0, 1 ) )
ORDER BY a.name,b.rows DESC;

案例
在这里插入图片描述

写法2:只获取库中表名、行数建表时间

SQL

USE [test] -- 只需修改这里的库名

SELECT A.NAME ,B.ROWS,crdate 
FROM sysobjects A JOIN sysindexes B ON A.id = B.id 
WHERE A.xtype = 'U' AND B.indid IN(0,1) 
ORDER BY B.ROWS DESC

案例
在这里插入图片描述

写法3:只查看表名和建表时间

SQL:

USE [test] -- 只需修改这里的库名

select name,crdate from sysobjects where xtype = 'U'

案例
在这里插入图片描述

写法4:有点小问题,大佬帮忙改一下

SQL

select object_name(id) tablename,
		 8*reserved/1024 reserved,
		 rtrim(8*dpages/1024)+'Mb' used,
		 8*(reserved-dpages)/1024 unused,
       8*dpages/1024-rows/1024*minlen/1024 free,
       rows ,
       t.create_date,
       t.modify_date 
from sysindexes,sys.tables as t
where  object_name(id) = 'test1'

案例
在这里插入图片描述

写法5:查看某个数据库大小

SQL

exec sp_spaceused;

案例
在这里插入图片描述

写法5:查看某个表

SQL

EXEC sp_spaceused 'test1'; -- 只需修改表名即可

案例
在这里插入图片描述

千人全栈VIP答疑群联系博主帮忙解决报错

由于博主时间精力有限,每天私信人数太多,没办法每个粉丝都及时回复,所以优先回复VIP粉丝,可以通过订阅限时9.9付费专栏《100天精通Python从入门到就业》进入千人全栈VIP答疑群,获得优先解答机会(代码指导、远程服务),白嫖80G学习资料大礼包,专栏订阅地址:https://blog.csdn.net/yuan2019035055/category_11466020.html

  • 优点作者优先解答机会(代码指导、远程服务),群里大佬众多可以抱团取暖(大厂内推机会),此专栏文章是专门针对零基础和需要进阶提升的同学所准备的一套完整教学,从0到100的不断进阶深入,后续还有实战项目,轻松应对面试!

  • 专栏福利简历指导、招聘内推、每周送实体书、80G全栈学习视频、300本IT电子书:Python、Java、前端、大数据、数据库、算法、爬虫、数据分析、机器学习、面试题库等等

  • 注意:如果希望得到及时回复,和大佬们交流学习,订阅专栏后私信博主进千人VIP答疑群在这里插入图片描述
    在这里插入图片描述

免费资料获取,更多粉丝福利,关注下方公众号获取

在这里插入图片描述

  • 8
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
Hibernate提供了一些工具类来获取数据库信息,可以使用这些工具类来读取SQL Server结构。以下是一个示例代码: ```java Configuration configuration = new Configuration().configure(); SessionFactory sessionFactory = configuration.buildSessionFactory(); Session session = sessionFactory.openSession(); try { // 获取Session的元数据 SessionFactoryImplementor sessionFactoryImplementation = (SessionFactoryImplementor) session.getSessionFactory(); JdbcServices jdbcServices = sessionFactoryImplementation.getJdbcServices(); JdbcConnectionAccess jdbcConnectionAccess = jdbcServices.getBootstrapJdbcConnectionAccess(); Connection connection = jdbcConnectionAccess.obtainConnection(); DatabaseMetaData metaData = connection.getMetaData(); // 读取信息 String catalog = null; // 数据库名,为null示当前数据库 String schema = null; // 模式名,为null示不限制模式 String tableNamePattern = "my_table_name"; // 表名,支持通配符 String[] types = {"TABLE"}; // 类型,为null示所有类型都返回 ResultSet tables = metaData.getTables(catalog, schema, tableNamePattern, types); while (tables.next()) { String tableName = tables.getString("TABLE_NAME"); // 表名 String tableType = tables.getString("TABLE_TYPE"); // 类型 // 读取主键信息 String pkColumnName = null; ResultSet primaryKeys = metaData.getPrimaryKeys(catalog, schema, tableName); while (primaryKeys.next()) { pkColumnName = primaryKeys.getString("COLUMN_NAME"); // 主键列名 } primaryKeys.close(); System.out.println("Table: " + tableName + " (" + tableType + ") Primary Key: " + pkColumnName); } tables.close(); } finally { session.close(); } ``` 在上面的代码中,我们首先获取了Session的元数据,然后使用元数据的`getTables()`方法读取满足条件的信息,最后使用`getPrimaryKeys()`方法读取每个的主键信息。需要注意的是,SQL Server的主键信息可能包含多个列,但是这里只读取了其中一个列的信息。如果需要读取所有主键列的信息,可以对`getPrimaryKeys()`方法的返回值进行遍历处理。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

袁袁袁袁满

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值