在列数据类型 TEXT SQL 服务器上使用 REPLACE
Use REPLACE on column data type TEXT SQL Server
我尝试使用此代码来解决列类型文本上的重音符号:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS nvarchar(max)), 'ó', 'ó')
WHERE Descripcion like '%ó%'
问题是该列的数据类型是text
,无法替换;但是当我使用上面的代码时,显示查询成功并显示受影响的总行数
是TEXT还是NTEXT?您正在替换中混合类型。
它没有错误地完成但没有做任何事情的原因是你要求它用 ó
替换任何 ó
,并且只在有 ó
的记录中。
目前的写法,你想用另一个替换哪个是模棱两可的,所以我会展示两个。
如果你想用ó
替换ó
:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS VARCHAR(MAX)), 'ó', 'ó')
WHERE Descripcion like '%ó%';
如果你想用ó
替换ó
:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS VARCHAR(MAX)), 'ó', 'ó')
WHERE Descripcion like '%ó%';
此外,如果数据类型确实是 NTEXT,只需将 VARCHAR(MAX)
更改为 NVARCHAR(MAX)
并在 3 个字符串文字前加上 N
前缀,如:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS NVARCHAR(MAX)), N'ó', N'ó')
WHERE Descripcion like N'%ó%';
我尝试使用此代码来解决列类型文本上的重音符号:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS nvarchar(max)), 'ó', 'ó')
WHERE Descripcion like '%ó%'
问题是该列的数据类型是text
,无法替换;但是当我使用上面的代码时,显示查询成功并显示受影响的总行数
是TEXT还是NTEXT?您正在替换中混合类型。
它没有错误地完成但没有做任何事情的原因是你要求它用 ó
替换任何 ó
,并且只在有 ó
的记录中。
目前的写法,你想用另一个替换哪个是模棱两可的,所以我会展示两个。
如果你想用ó
替换ó
:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS VARCHAR(MAX)), 'ó', 'ó')
WHERE Descripcion like '%ó%';
如果你想用ó
替换ó
:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS VARCHAR(MAX)), 'ó', 'ó')
WHERE Descripcion like '%ó%';
此外,如果数据类型确实是 NTEXT,只需将 VARCHAR(MAX)
更改为 NVARCHAR(MAX)
并在 3 个字符串文字前加上 N
前缀,如:
UPDATE [AcuerdateWEB].[dbo].[Actividad]
SET Descripcion = REPLACE(CAST(Descripcion AS NVARCHAR(MAX)), N'ó', N'ó')
WHERE Descripcion like N'%ó%';