在向表中插入记录的查询下面没有修剪空白空间。
Insert into MyTable (MyColumn)
select RTRIM(LTRIM(rowvalue)) from #temptable
或者,如果我分配给变量并重新插入,则会修剪空白。
Declare @var varchar(max)
set @var = ( select RTRIM(LTRIM(rowvalue)) from #temptable )
go
Insert into MyTable (MyColumn) values ( @var)
除了分配外,还有一种方法可以修剪Insert查询中的空白。
答案 0 :(得分:0)
可能是您的字段中包含高ASCII字符。尝试此操作,看看结果是否返回,它检查该字段是否包含1-31到127-255之间的字符。
-- See if it's in the low ASCII range
SELECT *
FROM #temp
WHERE rowvalue LIKE '%[' + CHAR(1)+ '-' +CHAR(31)+']%' COLLATE Latin1_General_100_BIN2
-- See if it's in the high ASCII range
SELECT *
FROM #temp
WHERE rowvalue LIKE '%[' + CHAR(127)+ '-' +CHAR(255)+']%' COLLATE Latin1_General_100_BIN2
如果记录返回,则可能需要替换字符才能将其删除。参见here