Los tipos varchar(max) y nvarchar(max) no están en SQL Server 2000, son de la versión 2005 en adelante y es una pena porque son muy útiles.
Para modificar datos tipo text necesitas las funciones writetext, updatetext y readtext, puedes ver un ejemplo en
http://www.sqlteam.com/article/searc...-a-text-column
Las funciones replace, rtrim y ltrim no las puedes utilizar con tipos text, en este caso, tienes que leer por tramos (llamados porción o chunk de datos) dentro de un loop avanzando desde una posición dada más un offset, asignar el chunk a una variable varchar para modificar el valor según sea necesario y actualizar la tabla con la función updatetext, por ejemplo:
Código:
create table t100 (id numeric(8) not null identity, datos text)
Go
insert into t100 values ('xyxyxyxyxyxyxyxyxyxyxyxyxyxyxy')
Go
BEGIN
DECLARE @StringActual varchar(10)
SET @StringActual = 'init'
DECLARE @StringNuevo varchar(10)
DECLARE @Posicion int
DECLARE @Cantidad int
DECLARE @StringLen int
DECLARE @ptr varbinary(16)
SET @Posicion = 1 --posición inicial
SET @Cantidad = 5 --offset de lectura
SELECT @ptr = TEXTPTR(datos) FROM t100 WHERE id = 1
WHILE (@StringActual != '')
BEGIN
SELECT @StringActual = SUBSTRING(datos, @Posicion, @Cantidad)
FROM t100 WHERE id = 1
SET @StringNuevo = replace(@StringActual,'texto1','texto2') --código que modifica datos
SET @StringLen = len(@StringActual) --solo es útil en caso de @Cantidad variable
UPDATETEXT t100.datos @ptr @Posicion @StringLen @StringNuevo
SET @Posicion = @Posicion + @Cantidad
END
END
Go
Saludos