Solución: Pidiendo ayuda en el internet, me dijeron de todo, desde que no usara triggers sino stored procedures hasta que cambiara de base de datos, pero mi problema persistía. Muchas veces estuve tentada a usar cursores y matar mi base de datos, pero en un foro que nada tenía que ver con el tema, se me iluminaron las ideas. Y para no usar cursores, utilicé un método poco ortodoxo de ir procesando registro por registro la tabla inserted.
¿Cómo? Primero debo poner en una temporal lo que contiene dicha tabla
SELECT * INTO #tmp_inserted FROM inserted
Luego empiezo a recorrer fila por fila la tabla. La belleza aquí es usar el set rowcount 1 para que solo se procese una fila, con dicha fila hacer lo que necesitemos, en mi caso insertar los datos en otra tabla, y luego eliminar la fila de la temporal y procesar la siguiente. Más o menos como un cursor pero utilizando menos procesos.
El código queda algo parecido a lo siguiente.
CREATE TRIGGER trigger1 ON Base_Datos..tabla AFTER UPDATE AS IF UPDATE(campo) --Sirve para verificar que el trigger se ejecute solo cuando se actualice un campo en especial BEGIN --Temporal para recorrer cada uno de los registros SELECT * INTO #tmp_inserted FROM inserted --Recorro cada uno de los registros While(Exists(select * from #tmp_inserted)) BEGIN set ROWCOUNT 1 --Aqui van mis procesos de inserción --Al final borro el registro procesado delete from #tmp_inserted set ROWCOUNT 0 END END