我试图从我的表中删除多个空格,其中包含40个列以及其中的字符串值和约150K行。在字符串中递归地删除空间
使用CURSOR,我想出了以下解决方案(作为我的存储过程的一部分填充我的表),但是这并不能删除单次运行中的空白。如果我多次手动运行更新语句,空格将被完全删除。有关如何在单次运行中清理数据的想法?
Declare @col nvarchar(128)
Declare StringCol CUSRSOR for
SELECT COLUMN_NAME
FROM INFORMATION_SCHEMA.COLUMNS
WHERE TABLE_NAME = 'TableName'
AND DATA_TYPE = 'varchar'
OPEN StringCol
FETCH NEXT FROM StringCol into @col;
WHILE @@FETCH_STATUS = 0
BEGIN
UPDATE TableName
SET @col = LTRIM(RTRIM(REPLACE(@col, ' ', ' ')))
WHERE @col LIKE '% %'
FETCH NEXT FROM StringCol into @col
END
CLOSE StringCol
Deallocate StringCol
END
您是否试图将双空格转换为单个空格,或者完全删除所有空格? –