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=-
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 --table1为要转换的表,美国服务器,香港虚拟主机,column1为要转换的表字段
调用:update table1 set column1=dbo.f_convert(column1,0);,香港虚拟主机