CREATE&nbs
p; FUNCTION f_Convert(
@str NV
ArchAR(4000), --要转换的字符串
@flag b
IT --转换标志,0转换成
半角,1转换成全角
)RETURNS n
VARchar(4000)
AS
BE
gin 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 LATI
n1_GENERAL_BIN,@str)
WHILE @i> 0
SELECT @str=REPLACE(@str,
S
ubSTRING(@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);