我需要删除所有空格和所有符号,但目标表中的字母和数字除外(例如dbo.Products),SQL Server中的目标列(来自示例products_fullTextSearch)。
答案 0 :(得分:0)
创建用户定义的scalar function
然后使用该函数更新表
<强>功能:强>
CREATE FUNCTION Udf_remove_symbol_space(@chr VARCHAR(max))
returns VARCHAR(max)
AS
BEGIN
DECLARE @cntr INT=1,
@temp VARCHAR(5),
@result VARCHAR(max)=''
WHILE @cntr <= Len(@chr)
BEGIN
SET @temp = Substring(@chr, @cntr, 1)
IF @temp LIKE '[a-z]'
OR @temp LIKE '[0-9]'
BEGIN
SET @result += @temp
END
SET @cntr+=1
END
RETURN @result
END
<强>演示强>
CREATE TABLE #test
(chr VARCHAR(max))
INSERT #test
VALUES('1234567890abcdefghijk~lmonpqrstuvwxyzA BCDEFGHIJKLMONPQRSTUVWXYZ.-#,/\&%();:+@_*?|=')
UPDATE #test
SET chr = dbo.Chrtst1(chr)
select * from #test --1234567890abcdefghijklmonpqrstuvwxyzABCDEFGHIJKLMONPQRSTUVWXYZ