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

总是死循环 为什么
declare   @i   int
set   @i=2
while   @i <100
insert   into   citybbs   (author,time,title,contents,latest,wcity)
values   ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set   @i=@i+1

主要为了测试用   ,表主键为id   自增1。
可是,执行的时候总是死循环,无限插入数据。

------解决方案--------------------
declare @i int
set @i=2
while @i <100
begin
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')

set @i=@i+1
end
------解决方案--------------------
while或if语句有多条的时候,应该加上BEGIN,END
------解决方案--------------------
declare @i int
set @i=2
while @i <100
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set @i=@i+1
------------------------------------
因为程序执行一次后,@i又重新赋值为2,这样就是死循环,加上BEGIN和END就OK了
------解决方案--------------------
declare @i int
set @i=2
while @i <100
begin
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set @i=@i+1
end

------解决方案--------------------
declare @i int
set @i=2
while @i <100
begin
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set @i=@i+1
end
------解决方案--------------------


create table citybbs(
author varchar(100),
[time] datetime,
title varchar(100),
contents varchar(100),
latest datetime,
wcity varchar(100)
)

declare @i int
set @i=2
while (@i <100)
begin --注意
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set @i=@i+1
end --注意
------解决方案--------------------
--要把程序块用,写在begin.....end之中,否则只执行while 的下一句,@i的值永远没有自增
--所以就是死循环!
declare @i int
set @i=2
while @i <100
begin
insert into citybbs (author,time,title,contents,latest,wcity)
values ( 'michael ',getdate(), 'ddddd ', 'ssssssssssd ',getdate(), 'dddd ')
set @i=@i+1
end

------解决方案--------------------
在while 加上begin and 就可以了