sql中print的问题

ohfox 2012-01-17 12:47:44
以前就发现了,比如我在一个循环中print 变量值出来查看,在“消息”中能够明显的看到,print的消息并不是一条条出来的,而是一批批出来的,不太理解为什么?
比如

DECLARE @i INT;
SET @i=1
WHILE @i<=100
BEGIN
PRINT @i;
SET @i=@i+1
WAITFOR DELAY '00:00:01'
END


难道是缓冲区填满了才出来了?这也不对啊
...全文
227 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
ohfox 2012-01-18
  • 打赏
  • 举报
回复
不是“运行到哪里显示到哪里的",而是不连续的成批显示。
各位可以执行下我的测试脚本就能发现这个现象
gw6328 2012-01-17
  • 打赏
  • 举报
回复
貌似sql的消息都是在完成,或者异常后一起显示出来,不会运行到哪里显示到哪里的。
ohfox 2012-01-17
  • 打赏
  • 举报
回复
我知道
我好奇的只是为什么print不是一条条print出来的
如果是我这次发现的30条30条的出来,那么它 又是为什么呢?
AcHerat 元老 2012-01-17
  • 打赏
  • 举报
回复
你的30条30条只是一个随机的,有可能是40条出来,有可能是50条出来,不一定的,这样写没任何意义,数据库的作用不在这里。
ohfox 2012-01-17
  • 打赏
  • 举报
回复
不是的
可以就跑一下我的代码,然后在“消息”里面观察,我的是30条30条的一起出来,而不是一条一条的出来
叶子 2012-01-17
  • 打赏
  • 举报
回复
和print没有关系吧

print 1
WAITFOR DELAY '00:00:01'
print 2

select 1
WAITFOR DELAY '00:00:01'
select 2


换成select 它也是2个一起出来

  • 打赏
  • 举报
回复
你这个语句是一个整体,必须当查询执行完成后才能出结果啊。不会一条一条出来

34,873

社区成员

发帖
与我相关
我的任务
社区描述
MS-SQL Server相关内容讨论专区
社区管理员
  • 基础类社区
  • 二月十六
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧