create function 全半角 (@str Nvarchar(4000),@flag nchar(4))
returns nvarchar(4000)
as
begin
  declare @ nvarchar(4000)
  set @=N''
  if @flag=N'全角'
    while @str<>N''
      select @=@+case when unicode(left(@str,1)) between 33 and 126 then nchar(unicode(left(@str,1))+65248) else left(@str,1) end,@str=substring(@str,2,4000)
  else
    while @str<>N''
      select @=@+case when unicode(left(@str,1)) between 65281 and 65374 then nchar(unicode(left(@str,1))-65248) else left(@str,1) end,@str=substring(@str,2,4000)
  return @
end
goselect dbo.全半角(N'12453ga的sd(a4ss57890','全角')select dbo.全半角(N'12453ga的s(da4ss57890','半角')godrop function 全半角

解决方案 »

  1.   

    你的代码是对的呀!我试了一下:
    declare @fcAll table (lszz varchar(100))insert @fcAll values('0.5')
    insert @fcAll values('0.2')
    insert @fcAll values('0.8')
    insert @fcAll values('0.7')
    insert @fcAll values('0.4')
    select * from @fcAllUPDATE @fcAll SET lszz = REPLACE(lszz, '.', '.') WHERE LSZZ LIKE '%.%'select * from @fcAll可以呀!
      

  2.   

    或你建好上面函数后:UPDATE @fcAll SET lszz =dbo.全半角(lszz,'半角') ---WHERE LSZZ LIKE '%.%'
      

  3.   

    不用条件,试:
    UPDATE fcAll
    SET lszz = REPLACE(lszz, '.', '.')
    go
      

  4.   

    tj_dns说得有理,不要那么麻烦!!