Actualizar campo caracter

21/08/2003 - 15:56 por jiordie | Informe spam
Buenos Días a todos!!,
Tengo una tabla a la cual quiero actualizarle el
campo "Revisar", que es NVARCHAR(100), la cuestion es que
cuando corro el SP, y en el campo hay datos el los
sobreescribe, pero estos datos tengo que dejarlos y
agregarles otra parte: Me explico
el campo "Revisar" es igual a 'a' y le voy a colocar
' c' de tal manera que quede 'a c'.
esto funciona cuando le digo en el update SET Revisar =
Revisar + ' c', y cuando el campo tiene datos, pero si yo
le doy esta orden y el campo no tiene nada tampoco
actualiza nada, ALGUIEN ME PUEDE AYUDAR, por que igual
cuando no tiene nada necesito colocarle el nuevo valor, yo
esto haciendo lo siguiente pero tampoco me ha funcionado:
DECLARE rm CURSOR LOCAL SCROLL FOR
SELECT Revisar FROM Tmp_Validar_Minutas_01
WHERE Registro = @Registro;
OPEN rm
FETCH FIRST FROM rm
INTO @Revisa
IF SUBSTRING(@Revisa,0,1) = NULL
BEGIN
SET @Revisa = '-'
END
UPDATE Tmp_Validar_Minutas_01
SET Revisar = @Revisa + ' - Nro ' + @Reg1 + ' C.P. ' + @Cp
WHERE Registro = @Registro;
CLOSE rm
DEALLOCATE rm
 

Leer las respuestas

#1 Gustavo Larriera [MVP]
21/08/2003 - 16:53 | Informe spam
Primero que nada, como humilde fanático de la Brigada Anticursores (Falange
KIRF - Keep It Relational-Friendly :-)) no uses un cursor cuando puede
evitarse.

En tu caso el problema puede ser que el campo Revisar tenga valores NULL y
eso hace que la concatenación NULL+'x' siempre te devuelve NULL.

Prueba hacerlo asi, donde 'x' es el valor a incorporar al campo.

UPDATE Tmp_Validar_Minutas_01
SET Revisar = CASE ISNULL(Revisar, '')
WHEN '' THEN 'x'
ELSE Revisar + 'x'
END

Gustavo Larriera, MSFT MVP-SQL
Uruguay LatAm

This message is provided "AS IS" with no warranties expressed or implied,
and confers no rights.


"jiordie" wrote in message
news:0d3b01c367eb$f7c38fb0$
Buenos Días a todos!!,
Tengo una tabla a la cual quiero actualizarle el
campo "Revisar", que es NVARCHAR(100), la cuestion es que
cuando corro el SP, y en el campo hay datos el los
sobreescribe, pero estos datos tengo que dejarlos y
agregarles otra parte: Me explico
el campo "Revisar" es igual a 'a' y le voy a colocar
' c' de tal manera que quede 'a c'.
esto funciona cuando le digo en el update SET Revisar Revisar + ' c', y cuando el campo tiene datos, pero si yo
le doy esta orden y el campo no tiene nada tampoco
actualiza nada, ALGUIEN ME PUEDE AYUDAR, por que igual
cuando no tiene nada necesito colocarle el nuevo valor, yo
esto haciendo lo siguiente pero tampoco me ha funcionado:
DECLARE rm CURSOR LOCAL SCROLL FOR
SELECT Revisar FROM Tmp_Validar_Minutas_01
WHERE Registro = @Registro;
OPEN rm
FETCH FIRST FROM rm
INTO @Revisa
IF SUBSTRING(@Revisa,0,1) = NULL
BEGIN
SET @Revisa = '-'
END
UPDATE Tmp_Validar_Minutas_01
SET Revisar = @Revisa + ' - Nro ' + @Reg1 + ' C.P. ' + @Cp
WHERE Registro = @Registro;
CLOSE rm
DEALLOCATE rm

Preguntas similares