CREATE TRIGGER room_with_call
ON dbo.room
INSTEAD OF UPDATE
AS
BEGIN
  If update(roomstate_id)
  Begin 
  DECLARE @o_roomstate_id int,
          @n_roomstate_id int,
          @id int;
  SELECT @id = id FROM INSERTED;
  SELECT @n_roomstate_id = roomstate_id FROM INSERTED;
  SELECT @o_roomstate_id = (SELECT roomstate_id FROM dbo.room WHERE id = @id)
  IF @o_roomstate_id = 2
Begin
DELETE dbo.call WHERE room_id = @id;
END
  UPDATE dbo.room SET roomstate_id = @n_roomstate_id WHERE id = @id;
  End
END