|
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); ,香港虚拟主机 |
|