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','半角')