Declare @zd1 NVARCHAR(Max)
Declare @rows int
Declare @counter int
select @rows=@@rowcount
select @counter=1
while @counter<@rows
begin
update tt
set @zd1=(select prosize from tt where id=@counter  )
set @zd1=ltrim(@zd1)
set @zd1=rtrim(@zd1)
    while charindex('  ',@zd1)<>0
  begin
set @zd1=replace(@zd1,'  ',' ')
end
      where id=@counter   
      SELECT @counter=@counter+1
end错误:消息 156,级别 15,状态 1,第 19 行
关键字 'where' 附近有语法错误。
消息 102,级别 15,状态 1,第 21 行
'end' 附近有语法错误。

解决方案 »

  1.   

    Declare @zd1 NVARCHAR(max)
    Declare @rows int
    Declare @counter int
    select @rows=@@rowcount
    select @counter=1
    while @counter<@rows
    begin
    update tt
    set @zd1=(select prosize from tt where id=@counter  )
    set @zd1=ltrim(@zd1)
    set @zd1=rtrim(@zd1)
        while charindex('  ',@zd1)<>0
             begin
                set @zd1=replace(@zd1,'  ',' ')
            end
          if id=@counter   
          SELECT @counter=@counter+1
    end
      

  2.   


    提示:
    消息 207,级别 16,状态 1,第 16 行
    列名 'id' 无效。

    why?
      

  3.   

    刚没仔细看,这都是哪跟哪啊
    Declare @zd1 NVARCHAR(Max)
    Declare @rows int
    Declare @counter int
    select @rows=@@rowcount
    select @counter=1
    while @counter<@rows
    begin
    update tt
    set @zd1=(select prosize from tt where id=@counter  )
    set @zd1=ltrim(@zd1)
    set @zd1=rtrim(@zd1)
        while charindex('  ',@zd1)<>0
             begin
                set @zd1=replace(@zd1,'  ',' ')
            end
          where id=@counter    --这里不对,没这种语法,想完成什么在这里修改下。
          SELECT @counter=@counter+1
    end