日期:2014-05-17  浏览次数:20579 次

sql循环语句出错
declare @i int
declare @m char(1000)
set @i=1
set @m='2'
while @i<10000
begin
insert into NewEDI.dbo.EDITransferTask values('Sync','dklekl5564',@m,1,'','0',N'fdjek','2012-12-26 15:49:59.930',N'dfejk,'2012-12-26 15:50:00.117')
set @i=@i+1;
set @m=@m+'1'
end
为什么这样写,得到的记录不是 插入@m那个字段显示的不是 如21,211,2111这样一直循环下去呢,
而是都显示为2
望高手指点,感激不尽
------解决方案--------------------
把declare @m char(1000)
改成
declare @m varchar(1000)
------解决方案--------------------
declare @m char(1000) 改成varchar(1000)
因为 char(1000) 实际上@m是 2+(999个空格) 之后再连接'1',已经超过长度1000的限制 。