Hola, como están?
Mi duda es que tengo un trigger escuchando por un update de una fila en una
tabla, y quiero que al activarse, haga un update en todas las filas correspondientes de la tabla hija.
Tengo por ejemplo, la tabla HOTEL y un detalle HOTEL_SERVICIO,
entonces quiero que cuando se modifique el campo 'estado' en hotel, se
modifiquen los campos de todas las filas que corresponden a ese hotel, en
la tabla de hotel_servicio. Para ello, defini algo como esto:
create trigger actualizar_estado_hotel
on [dbo.HOTEL]
after update
...
update HOTEL_SERVICIO
set hotel= (select estado from inserted)
from hotel_servicio hs join inserted i
on hs.id_hotel = i.id_hotel
Al intentar modificar el campo estado en un hotel, sql server me despliega
el siguiente mensaje de error:
"la subconsulta ha devuelto mas de un valor, lo que no es correcto cuando
va a continuación de =,!=,<,<=,>,>= o cuando se utiliza como expresión.
Se terminó la instruccion"
Hice varias cosas para descartar causas posibles, incluso hice esto:
update HOTEL_SERVICIO
set hotel= (select estado from inserted)
Averiguando en distintos foros, vi que hablaban de hacer que el trigger pudiera
contener varias filas en la tabla "inserted". Pero no estoy seguro de si será
esa la causa, y de cómo hacer eso.