SqlServer數據庫全角轉半角
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);
轉處:http://blog.163.com/jiaqifeng_2008/blog/static/90518210201132811153445/