SqlServer数据库全角转换成半角
程序员文章站
2023-11-24 09:23:04
复制代码 代码如下:create function f_convert( @str nvarchar...
复制代码 代码如下:
create function f_convert(
@str nvarchar(4000), --要转换的字符串
@flag bit --转换标志,0转换成半角,1转换成全角
)returns nvarchar(4000)
as
begin
declare @pat nvarchar(8),@step int,@i int,@spc int
if @flag=0
select @pat=n'%[!-~]%',@step=-65248,
@str=replace(@str,n' ',n' ')
else
select @pat=n'%[!-~]%',@step=65248,
@str=replace(@str,n' ',n' ')
set @i=patindex(@pat collate latin1_general_bin,@str)
while @i> 0
select @str=replace(@str,
substring(@str,@i,1),
nchar(unicode(substring(@str,@i,1))+@step))
,@i=patindex(@pat collate latin1_general_bin,@str)
return(@str)
end
go调用:update table1 set column1=dbo.f_convert(column1,0);