SQL Server数据库中统计无记录数的表

大家使用的时候,将sql脚本中的红色[TestDB] 换成你的目标数据库名称。

 /************************************************************
* Code formatted by SoftTree SQL Assistant ?v7.0.158
* Time: 2016/5/19 18:47:02
* Author:zhangcn
************************************************************/ -- 指定一个数据库名称
USE [TestDB]; DECLARE @tableCount INT = 0; -- 定义变量,统计一个数据库中有多少张表
DECLARE @rowCount INT = 0; -- 定义变量,记录单个表中的记录数
DECLARE @i INT = 1; -- 定义变量, 用于循环计数
DECLARE @tableNamesWithoutData NVARCHAR(4000) = ''; -- 定义变量,用于记录数据库中哪些表没有数据
DECLARE @tableNamesWithoutDataCount INT = 0; -- 定义变量,统计数据库中无无记录表的数量
DECLARE @tableName NVARCHAR(2000) = ''; -- 定义变量,记录单个表的名字(该表没有记录)
DECLARE @sql NVARCHAR(2000) = ''; -- 定义sql,接收查询语句 -- 统计指定的数据库中有多少张表
SELECT @tableCount = COUNT([name])
FROM sys.objects -- 系统基础对象所在的视图
WHERE [type] = 'U' -- 判断临时表是否已经存在
IF OBJECT_ID('tempdb..#TempTable') IS NOT NULL
BEGIN
DROP TABLE #TempTable;-- 删除临时表
END -- 将指定数据库中的表名称与排序号,装入临时表中(效率很高)
SELECT ROW_NUMBER() OVER(ORDER BY NAME) AS rowNumber, [name]
INTO #TempTable
FROM sys.objects
WHERE [type] = 'U' WHILE @i <= @tableCount
BEGIN
-- 循环计算每个表的名称
SELECT @tableName = [name]
FROM #TempTable
WHERE rowNumber = @i; -- 拼接sql语句,用于统计表中的记录数
SET @sql = ' SELECT @num = COUNT(*) FROM [' + @tableName + ']';
EXEC sp_executesql @sql,N'@num int output',@rowCount OUTPUT -- 执行查询 -- select @rowCount IF @rowCount = 0
BEGIN
SET @tableNamesWithoutDataCount = @tableNamesWithoutDataCount + 1; -- 无记录表计数器 + 1
IF @tableNamesWithoutData = ''
BEGIN
SET @tableNamesWithoutData = @tableName
END
ELSE
BEGIN
SET @tableNamesWithoutData = @tableNamesWithoutData + '、' + @tableName
END
END SET @i = @i + 1; -- 计数加1
SET @rowCount = 0; -- 设置为0,下次重新计算
SET @tableName = ''; -- 清空,下次重新计算
SET @sql = ''; -- 清空,下次重新计算
END SELECT @tableNamesWithoutDataCount; -- 输出无记录表的总数量
SELECT @tableNamesWithoutData; -- 输出无记录表的名称

打开SQL 查询分析器,将上述脚本拷贝后运行,结果如下:

第一个查询结果,代表无记录数的表的总数量为652个;

第二个查询结果,代表无记录数的表的名称的字符串,中间用分号分割。

统计一个数据库中,无记录的表的sql语句的更多相关文章

  1. SpringBoot集成mybatis,同时读取一个数据库中多个数据表

    SpringBoot集成mybatis,同时读取一个数据库中多个数据表: application.properties: mybatis.config-location=classpath:mybat ...

  2. 【mybatis】mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wait timeout exceeded; try restarting transaction

    今天使用mybatis和jpa的过程中,发现这样一个问题: mybatis执行一个update方法,返回值为1,但是数据库中数据并未更新,粘贴sql语句直接在数据库执行,等待好久报错:Lock wai ...

  3. sql语句联表更新(从一个数据库中的一张表更新到另一个数据库的另一张表)

    一.sql server数据库写法: update a set a.ksgmm=b.ksgmm,a.ksgm=b.ksgm,a.scztm=b.scztm,a.sczt=b.sczt from lan ...

  4. SQL 中怎么查询一个数据库中一共有多少个表

    用户表:select count(*) 总表数 from sysobjects where xtype='u' 总表数:select count(*) 总表数 from sysobject s whe ...

  5. Oracle数据库中导出某张表到SQL并关联更新

    首先想到查询出结果,然后导出为SQL文件: 先导出表结构 1 在桌面建立对应的sql空文件 2 toos-->export userObjects 3 在对话框中选择你要导出的表 4 勾选上si ...

  6. 怎样用SQL语句查询一个数据库中的所有表?

    怎样用SQL语句查询一个数据库中的所有表?  --读取库中的所有表名 select name from sysobjects where xtype='u'--读取指定表的所有列名select nam ...

  7. [SQL]复制数据库某一个表到另一个数据库中

    SQL:复制数据库某一个表到另一个数据库中 SELECT * INTO 表1 FROM 表2 --复制表2如果只复制结构而不复制内容或只复制某一列只要加WHERE条件就好了 例子:SELECT * I ...

  8. SQL把表中的数据复制到另一个数据库中

    1 删除整张表的数据,并还原自增长值TRUNCATE TABLE TbWeixinActivity 2 3张表左连接select a.ID,c.Name,b.nickname,a.CreateDate ...

  9. 统计mysql数据库中数据表/字段等数量的sql

    1.查询一个表中有多少个字段: SELECT COUNT(*) FROM information_schema. COLUMNSWHERE table_schema = '数据库名'AND table ...

随机推荐

  1. sopUI上手教程

    1.新建项目 File-->New SOAP Project-->Project Name:填入项目名  Initial WSDL:填入项目的 web Services 2.添加WSDL ...

  2. pymongo 使用方法(增删改查)

    #!/usr/bin/env python # -*- coding:utf-8 -*- """ MongoDB存储 在这里我们来看一下Python3下MongoDB的存 ...

  3. IDEA或Webstorm设置Terminal终端字体大小

    File---Settings

  4. RTC子系统

    目录 RTC子系统 引入 hctosys.c interface.c class.c 小结 流程一览 框架分析 rtc_init rtc_device_register s3c_rtc_probe o ...

  5. HDU 1049(蠕虫爬井 **)

    题意是一只虫子在深度为 n 的井中,每分钟向上爬 u 单位,下一分钟会下滑 d 单位,问几分钟能爬出井. 本人是直接模拟的,这篇博客的分析比较好一些,应当学习这种分析问题的思路:http://www. ...

  6. redis远程连接报错记录

    错误如下 redis可视化工具连接测试 telnet ip 6379 修改关键参数如下 #开通外网访问 # bind 127.0.0.1 #以后台方式运行 daemonize no #取消保护模式,保 ...

  7. [物理学与PDEs]第5章习题9 伴随矩阵的特征值

    设 $3\times 3$ 阵 ${\bf A}$ 的特征值为 $\lm_1,\lm_2,\lm_3$, 证明 $\cof {\bf A}$ 的特征值为 $$\bex \lm_2\lm_3,\quad ...

  8. [物理学与PDEs]第4章第2节 反应流体力学方程组 2.3 混合气体状态方程

    1.  记号与假设 (1)  已燃气体的化学能为 $0$. (2)  单位质量的未燃气体的化学能为 $g_0>0$. 2.  对多方气体 (理想气体当 $T$ 不高时可近似认为), $$\bex ...

  9. C# 执行oracle sql 语句出现中文不兼容的问题

    最近我用C#调用 操作oracle 数据库 出现了一个问题就是 我的查询语中的条件语句 含有中文 字符在C#中查询不了 ,但是在pl sql  中能够正常的查询出来. 这个原因是 C# 执行orccl ...

  10. JS遍历数组的操作(map、forEach、filter等)

    1.map的用法 定义:原数组被“映射”成对应新数组 代码示例: var users = [ {name: "张含韵", "email": "zhan ...