Quisiera ayuda en la creación del siguiente scripts: Ingresar datos de una tabla a otra pero que cumpla algunas condiciones, la relación que existe entre las dos tablas es el código que el script lo busque y si se encuentra en las dos tablas me ingrese un valor en una columna que elija...
Hay varias formas, voy a suponer que el campo que quieres marcar está en la tabla1 Yo personalmente haría una vista primero con las dos tablas haces un vista del tipo select * from tabla1 inner join tabla2 on tabla1.campo=tabla2.campo where tabla1.campomarcado=0 campo es el campo de unión de las 2 tablas Campo marcado es el campo que utilizamos como control, una vez marcado ese registro no vuelve a aparecer en la vista y no volvemos a marcarlo esta vista devolverá datos si hay registros en la tabla1 y tabla2 haces un job de sql que se ejcute cada minuto con update tabla1 set campomarcado=1 si la vista devuelve resultados marcará todos los registros, esto es como porque solo es una instrucción y lo puedes programar cada minuto Si las necesidades son otras entonces puedes probar esto Hace falta un cursor para recorrer la tabla1 y buscar los campos en la tabla2, esto es mucho mas lento que el ejemplo anterio declare @id as int --variable para recorrer la tabla1 declare cur cursor for --declaramos un cursos para recorrer una tabla selet id from tabla2 --cargamos todos los id de la tabla2 open cur fetch from cur into @id --almacenamos el primer id en mi variable while @@fetch_status=0 --si hay registros, esta condición no se cumple al llegar al final begin update tabla1 set campomarcado=1 where id=@id fetch next from cur into @id --cargo el seguiente id end close cur deallocate cut en este caso recorro la tabla 2 y luego marco los registros de la tabla 1, este script recorre la tabla dos entera y luego va buscando en la primera por eso es mas lento. Luego tienes una combianción de los dos haces la vista y haces el cursor recorriendo la vista en vez de tabla2, de esta forma el cursos solo se carga si la vista tiene datos, tarda menos que la opción 2 pero mas que la opción 1 declare @id as int --variable para recorrer la tabla1 declare cur cursor for --declaramos un cursos para recorrer una tabla selet id from Vista --cargamos todos los id de la VISTA open cur fetch from cur into @id --almacenamos el primer id en mi variable while @@fetch_status=0 --si hay registros, esta condición no se cumple al llegar al final begin update tabla1 set campomarcado=1 where id=@id fetch next from cur into @id --cargo el seguiente id end close cur deallocate cut depende de lo que estés haciendo, para que lo necesites y la forma en que se va a ejecutar este script puede haber muchas otras soluciones.
No se si te ha servido o hay que aclarar algo Tengo muchas preguntas activas si esta resuelto finaliza por favor sino cuéntame como vamos