SQL Server - trigger insert

 
Vista:
sin imagen de perfil

trigger insert

Publicado por nicolas (4 intervenciones) el 19/01/2016 17:37:28
Buenas tardes,

estoy intentando ejecutar un bat con el siguiente trigger:

use[tsfd]
GO
CREATE TRIGGER autoPano
ON dbo.imginfo
AFTER INSERT
AS
BEGIN
SET NOCOUNT ON
EXEC master..xp_CMDShell 'c:\vatech\autopano\autopano.bat'
END

El trigger se lanza correctamente cuando la tabla [imginfo] sufre un Insert. Por otra parte, si ejecuto el bat manualmente (sin activar el trigger) también funciona correctamente. Pero... si el trigger llama al bat, entonces la base de datos queda bloqueada y ya nada puedo hacer más que reiniciar el servicio...

El archivo .bat llama a su vez a un archivo .sql, que contiene el código siguiente:

USE [TSFD]

create table #autoPano (chart char(32), C_Date datetime, count int)
INSERT INTO #autoPano
SELECT chart, C_Date, count (*)
FROM imginfo GROUP BY chart, C_Date
HAVING count (*) > 1;

Bueno, tiene más código, pero solo con ese ya queda todo bloqueado... Sin embargo, si ejecuto el bat manualmente, la llamada al .sql funciona sin problemas...

Es posible que se produzca alguna interferencia o bucle entre el insert que provoca el trigger y el insert que se activa? No entiendo mucho, y es una de mis primeras incursiones en triggers...

Muchas gracias de antemano por su tiempo
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder
sin imagen de perfil

trigger insert

Publicado por nicolas (4 intervenciones) el 19/01/2016 18:15:53
Otra prueba que hice es crear una tabla (no temporal) y ejecutar el mismo proceso sobre esa tabla. En este caso todo corre bien.
Cabe decir que estoy intentando controlar una bd de terceros, y actuar sobre ella cuando se inserta un nuevo campo en la tabla [imginfo]. Cuando creo el trigger y se lanza sobre esta tabla, la BD se queda bloqueada. Si lo hago sobre una tabla [pruebas]que creo yo mismo, el mismo procedimiento funciona....

Igual el trigger se lanza y todavía la BD está haciendo más acciones? No sé.... cualquier idea o comentario me irá bien para poder seguir con las pruebas.

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

trigger insert

Publicado por Isaias (4558 intervenciones) el 20/01/2016 00:51:01
Crea un LINKED SERVER de tu base de "terceros" y en el procecimiento que afecta tu tabla [imginfo] aplicas lo que debas aplicar.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
sin imagen de perfil

trigger insert

Publicado por nicolas (4 intervenciones) el 20/01/2016 12:36:17
OK, lo estoy intentando! jajaj pero... a pesar de estar buscando la info para hacerlo, creo que no lo acabo de entender... La idea general es que voy a tener un servidor replicado?
Creo un link_server desde server_objects ->linked_servers. OK. ahora, el trigger debo aplicarlo al nuevo servidor?

Gracias
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar
Imágen de perfil de Isaias
Val: 3.250
Oro
Ha mantenido su posición en SQL Server (en relación al último mes)
Gráfica de SQL Server

trigger insert

Publicado por Isaias (4558 intervenciones) el 21/01/2016 20:28:25
Tu LINKED SERVER, hace la funcion de tu "Otra base", entonces puedes hacer el UPDATE, INSERT, DELETO o lo que te convenga en tu "Otra tabla"
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar