Esto tambien te puede servir

http://technet.microsoft.com/es-es/library/bb522489(v=sql.105).aspx

Pero como necesita al agente tene en cuenta que este esta disponible a
partir de la version Estandard (es decir con Express no se puede).

Saludos,

Pancho


El 29 de abril de 2014, 7:56, francisco prieto <[email protected]>escribió:

> Ale,
>
> Encontre este paquete que se baja aparte... Es precisamente de eventos...
> Quizas te sirva.
>
> http://technet.microsoft.com/en-us/library/bb630282(v=sql.105).aspx
>
> Saludos,
>
> Pancho
> Córdoba
>
>
> El 28 de abril de 2014, 13:21, Gamazo Martin 
> <[email protected]>escribió:
>
>> Buenas tardes, como acotación:
>>
>>
>>
>> A parte de todo esto tene en cuenta que si el trigger que está
>> insertando, está dentro de una transacción y la misma hace rollback por lo
>> que sea, por  lógica o deadlock, ese insert vuelve atrás todos los cambios,
>> si lo que queres es monitorear si accedió o no, entonces el único insert
>> que puede funcionar sin verse afectado por transacción es contra un
>> servidor linqueado, insertando en una tabla en otro servidor ya que estas
>> conexiones no son afectadas por la transacción.
>>
>>
>>
>> Saludos
>>
>>
>>
>>
>>
>> *Martín Gamazo*
>>
>> *Analista Programador*
>>
>> Gerencia de Sistemas y Desarrollo Tecnológico
>> La Rioja 301 (1214) – Buenos Aires
>>
>> Teléfonos:  4956-9622  Int. 1461
>>
>> Directo: 4956-9761
>>
>> e-mail: *[email protected]
>> <http://mailnew/[email protected]>*
>> Web:  *www.oca.com.ar*
>>
>>
>>
>> *De:* [email protected] [mailto:[email protected]] *En nombre de *Alejandro
>> Paciotti
>> *Enviado el:* lunes, 28 de abril de 2014 10:57 a.m.
>> *Para:* GUFA List Member
>> *Asunto:* [GUFA] OFF-TOPIC: Eventos en SQL SERVER.
>>
>>
>>
>> Pancho: si te entendí, solo que no me gusta esa solución.
>>
>>
>>
>> Ponete en el lugar del desarrollador del sistema: Desarrollaste una
>> aplicación, la tenes en funcionamiento y viene otro programador y te dice:
>> Por cada INSERT que hagas en tal, tal y tal tabla voy  a disparar un
>> TRIGGER que *a)* inserte un registro en otra tabla, o *b) *inserte un
>> registro en otra tabla en *otra base de datos*, o bien c) inserte un
>> registro en otra tabla en otro motor, que puede ser mysql, firebird o
>> postgresql, que la voy a tener funcionando en este linux.
>>
>>
>>
>> Las mínimas preguntas que vos te vas a hacer son: ¿cómo va a ser la tabla
>> donde vas a insertar? ¿qué pasa si a esa tabla luego la lockea otro
>> proceso? ¿ y si está en otro motor, qué pasa si el motor perece, o se
>> indispone ? ¿si está en otro motor en otra pc?
>>
>>
>>
>> ¿Todo mi sistema va a depender de un mysql que está en un linux en un
>> cacharro ahí tirado ? Sostiene el programador del sistema, creo que con
>> justa causa.
>>
>>
>>
>>
>>
>> Por eso, creo que lo mas sano es ver el tema de los catcheos de eventos,
>> que son o deberían ser muy livianos siempre.
>>
>>
>>
>> Ya me pongo a leer sobre el Profiler. Gracias de todas formas.
>>
>>
>>
>>
>>
>>
>> [email protected]
>>
>>
>>
>> El 28 de abril de 2014, 8:07, francisco prieto <[email protected]>
>> escribió:
>>
>> No no no...
>>
>>
>>
>> No me entendiste...
>>
>>
>>
>> Si tenes acceso a la base de datos podes crear un trigger en la tabla que
>> quieras interceptar y por lo tanto en ese trigger podes disparar un
>> procedimiento almacenado o bien insertar los datos en otra tabla que no
>> tiene porque esta en la misma base de datos... es mas podes si queres
>> insertar datos en una tabla de un motor libre...
>>
>>
>>
>> Claro que el acceso a la base de datos que tenes que tener no es un
>> acceso de usuario final, tenes que poseer ciertos privilegios para poder
>> crear SP.
>>
>>
>>
>> En Sql Server hay eventos....  estudia el tema SQL Profiler, pero dichos
>> eventos estan orientados a la optimizacion del motor y no a la interacción
>> con sus datos.
>>
>>
>>
>> Lo otro que podes hacer es armarte un esquema en Firebird o en MySql pero
>> que apunte a cualquier base de datos externa, el tema es que los eventos
>> que puedas generar en ellos van a apuntar a tu base y no a la externa,
>> salvo que en la extena tengas propiedades privilegiadas.
>>
>>
>>
>> En fin esa es mi experiencia... en el caso Firebird podes realizale esta
>> misma pregunta a Walter Ojeda Valiente que es un maestro en Firebird... te
>> paso su blog... http://firebird21.wordpress.com/
>>
>>
>>
>> Saludos,
>>
>>
>>
>> Pancho
>>
>> Córdoba
>>
>>
>>
>> El 27 de abril de 2014, 10:47, Alejandro Paciotti <
>> [email protected]> escribió:
>>
>> Supongamos que hay un sistema, y que ese sistema inserta registros en una
>> tabla.
>>
>> Yo no tengo los fuentes de ese sistema pero tengo acceso a la base de
>> datos y quiero que cada vez que se inserta un registro en alguna tabla
>> específica se ejecute *un programa*.
>>
>>
>>
>> Podría hacer lo que dice Pancho y hacer que ese *programa* observe cada
>> n segundos una tabla en la base de datos y cuando se insertó un registro
>> ejecute lo que tenía que hacer originalmente.
>>
>>
>>
>> La verdad, esta solución no me gusta. En C# existe algo así como el
>> "system watcher " (no recuerdo exactamente) para una carpeta, que
>> interactua con el sistema operativo tal que determinados procedimientos se
>> ejecutan cuando se crea o altera algún archivo en esa carpeta.
>>
>>
>>
>> El mismo Windows también lo hace, si uno abre el explorador de windows
>> dos veces en la misma carpeta y crea un archivo en alguna de esas dos
>> ventanas la otra lo muestra casi inmediatamente. No creo que windows use
>> "timers"... debe tener algún sistema de eventos y notificaciones.
>>
>>
>>
>> De hecho, MSSQLSERVER también lo tiene!  el Service 
>> Broker<http://msdn.microsoft.com/en-us/library/ms166100.aspx> ,
>> pero los eventos no salen de la instancia de SQL SERVER, o bien, si salen
>> pero a otra instancia de SQL SERVER. Lo que yo quiero es que dispare un
>> evento en algún puerto, como lo hace FIREBIRD, o MYSQL.. ¿ para qué? Para
>> desligarme de tener que usar C# o bien para desligarme de tener que usar
>> una instancia de SQLSERVER y programar en lo que se me antoja, sea PYTHON,
>> JAVA, RUBY O JAVASCRIPT...
>>
>>
>>
>> Otros ejemplos de uso, y quizá muchísimo mas útil que mi necesidad es
>> para auditar la performance  del motor y de cualquier aplicación, como por
>> ejemplo lo que trae SQL SERVER (creo que a partir de 2012) que son los
>> eventos extendidos que sirven para:
>>
>>
>>
>>
>>
>> ·         Encontrar las consultas más caras
>>
>> ·         Encontrar las causas principales de la contención de bloqueos
>> temporales
>>
>> ·         Encontrar una consulta que esté bloqueando otras consultas
>>
>> ·         Solucionar problemas de uso excesivo de la CPU producido por
>> la recompilación de consultas
>>
>> ·         Solucionar problemas de interbloqueos
>>
>> Sobre este tema pueden leer mucho 
>> aquí.<http://technet.microsoft.com/es-es/library/bb630282.aspx>
>>  *Esto no lo conocía cuando hice la pregunta*, lo leí recién ayer
>> (ayer... no se si fue ayer o el Viernes, ya estoy perdiendo la noción de
>> los días).
>>
>>
>>
>> En resumen, lo que yo quiero hacer es un sistema que escuche cuando en
>> una base de datos se produzca un evento sin tener la necesidad de alterar
>> *nada* de las instrucciones que se utilizan para insertar, borrar y/o
>> modificar.
>>
>>
>>
>> Para mi, es sumamente importante, ya que de poder hacer esto podría
>> integrar cualquier sistema hecho con BDD en SQLSERVER solamente pidiendo al
>> administrador de la base de datos que inserte esos TRIGGERS, (o lo que
>> fuese). Cuando me refiero a integrar quiero decir por ejemplo, integrar un
>> sistema con una herramienta de inteligencia de negocios, o con un CRM.
>> (Ejemplo: cuando se modifica el saldo de la tabla clientes y ese saldo
>> supera un monto determinado por una regla determinada por el gerente
>> comercial notificarlo vía email y generar un caso en el CRM).
>>
>>
>>
>> Espero haber sido claro!
>>
>>
>>
>> Saludos for everyone and everyone! (todos y todas en inglés...)
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>> [email protected]
>>
>>
>>
>> El 27 de abril de 2014, 9:03, francisco prieto <[email protected]>
>> escribió:
>>
>> Alejandro...
>>
>>
>>
>> No hace falta que lo escuches... con que el trigger inserte el elemento
>> en una tabla y vos mires constantemente dicha tabla sería suficiente.
>>
>>
>>
>> Saludos,
>>
>>
>>
>> Pancho
>>
>> Córdoba
>>
>>
>>
>> El 26 de abril de 2014, 23:51, César Pistiner <[email protected]>
>> escribió:
>>
>> Buenas noches...
>>
>> Cual es la necesidad de capturar ese evento? No te alcanza con
>> controlarlo antes o después de la llamada en tu código?
>>
>> Solo para comprender mas el problema.
>>
>> Saludos,
>> César
>>
>> El abr 26, 2014 9:51 AM, "Alejandro Paciotti" <
>> [email protected]> escribió:
>>
>> Un trigger en la tabla que vos quieras... pero como haces para "escuchar"
>> o catchear el evento desde afuera, y con que?
>>
>>
>>
>> Gracias!
>>
>>
>> [email protected]
>>
>>
>>
>> El 26 de abril de 2014, 9:41, francisco prieto <[email protected]>
>> escribió:
>>
>> Ale,
>>
>>
>>
>> Eso es simplemente un Trigger... y en Sql podes crearlo sin problemas...
>> gracias a ellos hice mi propia aplicacion de sincronozación entre
>> servidores...
>>
>>
>>
>> Saludos,
>>
>>
>>
>> Pancho
>>
>> Córdoba
>>
>>
>>
>> El 25 de abril de 2014, 12:25, Alejandro Paciotti <
>> [email protected]> escribió:
>>
>> Hola muchachos:
>>
>>
>>
>> Alguien conoce algún generador de eventos chatcheables en SQL SERVER?
>>
>>
>>
>> ¿Qué quiero decir?
>>
>>
>>
>> En este  ejemplo muestran como *Catch un Firebird events
>> <http://www.king-foo.be/2011/07/catch-firebird-events-with-node-js/>*,
>> que básicamente lo hace a traves de un disparador luego de la inserción /
>> borrado / update de un registro de una tabla.
>>
>>
>>
>>
>>
>> SQL> SET TERM !! ; SQL> CREATE TRIGGER NEW_MONKEY_EVENT FOR monkeys CON>
>> ACTIVE CON> AFTER INSERT CON> AS CON> BEGIN CON> POST_EVENT
>> 'new_monkey_created'; CON> END!! SQL> SET TERM ; !!
>>
>>
>>
>> Todavía no lo probé, porque no quiero enroscarme con FIREBIRD siendo que
>> lo necesito primeramente en SQLSERVER.
>>
>>
>>
>> Si a alguien leyó, vio, o escuchó algo... agradeceré comentarios...
>>
>>
>>
>>
>>
>> Abrazos.
>>
>>
>>
>>
>>  [email protected]
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>>
>
>

Responder a