日期:2014-05-18  浏览次数:20601 次

sql中print的问题
以前就发现了,比如我在一个循环中print 变量值出来查看,在“消息”中能够明显的看到,print的消息并不是一条条出来的,而是一批批出来的,不太理解为什么?
比如
SQL code

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



难道是缓冲区填满了才出来了?这也不对啊

------解决方案--------------------
你这个语句是一个整体,必须当查询执行完成后才能出结果啊。不会一条一条出来
------解决方案--------------------
和print没有关系吧

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

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

------解决方案--------------------
你的30条30条只是一个随机的,有可能是40条出来,有可能是50条出来,不一定的,这样写没任何意义,数据库的作用不在这里。
------解决方案--------------------
貌似sql的消息都是在完成,或者异常后一起显示出来,不会运行到哪里显示到哪里的。