BUENAS NOCHES,
NO SE SI ME PUEDEN AYUDAR CON UNA CONSULTA.
NECESITO ACTUALIZAR UNOS DATOS MASIVAMENTE A TRAVEZ DE UNA CONSULTA
POR EJEMPLO TENGO UN TABLA EQUIPOS QUE TIENE LOS CAMPOS ID, NOMBRE , SERIE, UBICACION.
1 UIOMATRP-CAJA01 MXL111001 QUITO
2 UIOMATRP-CAJA02 MXL111002 QUITO
3 UIOMATRP-CAJA03 MXL111003 QUITO
4 UIOMATRP-CAJA04 MXL111004 QUITO
5 UIOMATRP-CAJA05 MXL111005 QUITO
QUERY SERIA
update equipos
set
nombre =uiomatri-bode0 (y que vaya en secuencia ejemplo uiomatri-bode01,02,03)
from equipo (select * from equipos where serie in ('MXL111001 ',MXL111002 ,MXL111003'))
es decir esos equipo con serie tendria que cambiar denombre automaticamente a
uiomatri-bode01
uiomatri-bode02
uiomatri-bode03
es algo asi como identity en el primari key al momento de crear la un campo de la tabla pero no se como hacer si me ayudan me ahorrarian un monto de trabajo
Puedes hacer un store procedure junto con un cursor, así recorres una tabla registro por registro y realiza las operaciones correspondientes por cada registro.
Amigo si me das una idea por favor de como realizar yo después me arreglo de como realizar
Mira, los cursores son una especie de ciclo donde se recorre desde el primer registro hasta el último, en otras palabras en programación sería algo al estilo:
for($i=0; $i<$CantidadRegistros; $i++):
# Aquí el código para cada registro
endfor;
Ahora para SQL Server, sería:
DECLARE @id INT
DECLARE @nombre VARCHAR(20)
DECLARE @nombreNuevo VARCHAR(20)
DECLARE crsCursor CURSOR FOR (SELECT id, nombre FROM tabla)
SET @contador = 1
OPEN crsCursor
FETCH NEXT FROM crsCursor INTO @id, @nombre
WHILE @@FETCH_STATUS = 0 BEGIN
SET @nombreNuevo = 'UIOMATRI-BODE' + RIGHT(@nombre, 2)
-- #
UPDATE table SET nombre = @nombreNuevo WHERE id = @id
-- #
FETCH NEXT FROM crsCursor INTO @id, @nombre
END
CLOSE crsCursor
DEALLOCATE crsCursor
UPDATE
Ahora pensadolo bien, podría ser algo como:
UPDATE tabla SET nombre = 'UIOMATRI-BODE' + RIGHT(nombre, 2)
jajaja si que me gusta hacer las cosas dificiles :3