SQL实现类似于自动刷新数据的功能

简介: 原文:SQL实现类似于自动刷新数据的功能有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据。但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了。
原文: SQL实现类似于自动刷新数据的功能

有时需要在SQL中,定时刷新某张表,比如说是要定时查询某张表的行数,通常做法就是手动的按F5去执行来刷新数据。但是如果这个定时查询历时较长,10分钟,或半小时,手动的话肯定是要崩溃了。貌似SQL没有像应用程序自动刷新的功能,可能是我还不知道有这样的功能,于是就写了一个类似自动刷新数据的脚本,需要手动中止程序的运行,当然也可能写个条件,自动结束语句的执行。

代码:

1 USE AdventureWorks2008R2
2 GO
3  
4 WHILE 1=1
5 BEGIN
6     SELECT COUNT(*) FROM HumanResources.Employee
7     WAITFOR DELAY '00:00:01'
8 END

 

执行后发现等了很久,SSMS都没有返回数据,就一直执行下去。如果耐心等待下去,大约是1-2分钟,数据突然“嘣”的一下子就出来了,根本不是自己想要实现的效果(写到这里,想到了成龙大哥卖X王洗发水的广告深深的影响了我-_-!!)。是不是这种写法是不行的?现在就来测试下。

 

修改代码,如下:

1 WHILE 1=1
2 BEGIN
3     SELECT * FROM HumanResources.Employee
4     WAITFOR DELAY '00:00:01'
5 END

 

成功了!为什么会这样?其实SSMS是一个很聪明的软件,因为返回的数据量很小,SSMS不会每查询一次,就即时显示出来,而是要有一定的数据量才会显示。
但是如果只需要查询行数,不是所有数据,在这里只需要稍为修改一下,增加返回(显示)的数据量就可以实现了。

 

代码如下:

1 WHILE 1=1
2 BEGIN
3     SELECT COUNT(*) FROM HumanResources.Employee
4     PRINT REPLICATE(1,4000)
5     WAITFOR DELAY '00:00:01'
6 END

 

那么问题来了,究竟是多大数据,每次查询才会即时显示呢?把PRINT REPLICATE(1,4000)4000修改为1000,执行语句,发现是每一次显示两行结果;修改为2000,有时一行,有时两行;修改为3000,一行的次稍多,修改为4000,可以了。得出结论,返回大于4000个字符时,SSMS会即时显示。

 

那么,新的问题又来了!每次SELECT查询都是隔开一行,有没有办法只显示最新的那个结果,或是只在一个表格中显示呢?

 

再继续修改代码,如下:

 1 SET NOCOUNT ON;
 2 
 3 WHILE 1=1
 4 BEGIN
 5     SELECT 'The count at ' + CONVERT(VARCHAR(20),GETDATE(),20) + ' is ==> ' + RTRIM(COUNT(*)) FROM HumanResources.Employee
 6     PRINT REPLICATE(' ',4000)
 7     WAITFOR DELAY '00:00:01'
 8 END
 9 
10 SET NOCOUNT OFF;

 

执行前,记得按Ctrl + T,或者点击SSMS的菜单命令,把执行结果以Text的格式显示。

 

实际效果如下:

 

这样就可以舒舒服服的看着SSMS自动地不停刷新数据,如果表的数据有变化,也会即时看到,也许能满足某些“特殊”的需求(貌似没什么实际作用-_-!!)。

 

好吧,关于WAITFOR语句的详细介绍,请参考:https://msdn.microsoft.com/en-us/library/ms187331%28v=sql.105%29.aspx

 

目录
相关文章
|
18天前
|
SQL 存储 关系型数据库
一文搞懂SQL优化——如何高效添加数据
**SQL优化关键点:** 1. **批量插入**提高效率,一次性建议不超过500条。 2. **手动事务**减少开销,多条插入语句用一个事务。 3. **主键顺序插入**避免页分裂,提升性能。 4. **使用`LOAD DATA INFILE`**大批量导入快速。 5. **避免主键乱序**,减少不必要的磁盘操作。 6. **选择合适主键类型**,避免UUID或长主键导致的性能问题。 7. **避免主键修改**,保持索引稳定。 这些技巧能优化数据库操作,提升系统性能。
213 4
一文搞懂SQL优化——如何高效添加数据
|
1月前
|
SQL 数据可视化 数据处理
使用SQL和Python处理Excel文件数据
使用SQL和Python处理Excel文件数据
51 0
|
28天前
|
SQL 安全 数据库
第三章用sql语句操作数据
第三章用sql语句操作数据
10 0
|
1月前
|
SQL 数据库 数据库管理
SQL中如何添加数据:基础指南
SQL中如何添加数据:基础指南
24 2
|
2月前
|
SQL 数据库 数据安全/隐私保护
sql注入碰到加密数据怎么办
sql注入碰到加密数据怎么办
18 1
|
2月前
|
分布式计算 资源调度 Hadoop
Flink报错问题之Sql往kafka表写聚合数据报错如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
|
2月前
|
SQL 消息中间件 Kafka
Flink sql 问题之主动使数据延时一段时间如何解决
Apache Flink是由Apache软件基金会开发的开源流处理框架,其核心是用Java和Scala编写的分布式流数据流引擎。本合集提供有关Apache Flink相关技术、使用技巧和最佳实践的资源。
53 2
|
2月前
|
SQL Oracle 关系型数据库
Flink SQL 问题之看不到数据如何解决
Flink SQL报错通常指在使用Apache Flink的SQL接口执行数据处理任务时遇到的问题;本合集将收集常见的Flink SQL报错情况及其解决方法,帮助用户迅速恢复数据处理流程。
50 3
|
2月前
|
SQL 存储 数据库
SQL数据开发
SQL数据开发
|
2月前
|
SQL 关系型数据库 MySQL
mysql 中sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月数据
mysql 中sql 语句查询今天、昨天、近7天、近30天、一个月内、上一月数据