Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » SQL Server »

Dudas con trigger

Estas en el tema de Dudas con trigger en el foro de SQL Server en Foros del Web. Tengo un job, que inserta con @import url("http://static.forosdelweb.com/clientscript/vbulletin_css/geshi.css"); Código SQL: Ver original BULK INSERT Crudo FROM ' \\ server \S MDR \S ube_SQL \s mdr_sql.csv' ...
  #1 (permalink)  
Antiguo 25/11/2010, 11:09
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Dudas con trigger

Tengo un job, que inserta con
Código SQL:
Ver original
  1. BULK INSERT Crudo
  2. FROM '\\server\SMDR\Sube_SQL\smdr_sql.csv'
  3. WITH(DATAFILETYPE ='char',
  4. FIELDTERMINATOR =',',
  5. ROWTERMINATOR = '\n',
  6. FIRSTROW = 2
  7. )

trabaja correctamente...

Pero en la tabla que lo inserta "Crudo", tiene un trigger, el cual requiero que pase los datos a otra tabla... porque no funciona??... funciona cuando inserto un registro por un registro, pero masivamente no lo hace... tengo que cambiar el bulk por otra instrucción? o que puedo hacer?...

Este es el trigger:
Código SQL:
Ver original
  1. ALTER TRIGGER [Inserte_Llamadas]
  2. ON [dbo].[Crudo]
  3. FOR INSERT AS BEGIN
  4.  
  5. DECLARE @texto nvarchar(MAX)
  6. SELECT @texto = SMDR FROM inserted
  7.  
  8. INSERT INTO dbo.Llamadas(Mensaje,HoraInicio,Anio,Mes,Dia,HoraFin,[CALL Duration], [Ring Duration], Caller, Direction, Called_Number, Dialled_Number, ... etc)
  9.  
  10. SELECT
  11.     SUBSTRING(@texto,1,9) AS HoraInicio,    SUBSTRING(@texto,10,5) AS Mensaje,
  12.     SUBSTRING(@texto,15,4) AS Anio, SUBSTRING(@texto,20,2) AS Mes,
  13.     SUBSTRING(@texto,23,2) AS Dia,  SUBSTRING(@texto,26,9) AS HoraFin,
  14.     [CALL Duration], [Ring Duration],   Caller, Direction, Called_Number,
  15.      Dialled_Number,    Account,Is_Internal, [CALL ID],
  16.      Continuation, Party1Device, Party1Name,Party2Device, Party2Name, Hold_Time,
  17.      Park_Time ... etc
  18. FROM  dbo.Crudowhere SMDR=@texto
  19. END


Espero me puedan ayudar GRacias!

Última edición por Inicia; 25/11/2010 a las 12:59 Razón: Cambio de código
  #2 (permalink)  
Antiguo 25/11/2010, 13:20
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dudas con trigger

Si lees tu ayuda en linea, claramente dice:

FIRE_TRIGGERS

Specifies that any insert triggers defined on the destination table execute during the bulk-import operation. If triggers are defined for INSERT operations on the target table, they are fired for every completed batch.

If FIRE_TRIGGERS is not specified, no insert triggers execute.

For more information, see Controlar la ejecución de desencadenadores al importar datos masivamente.


Ok?
__________________
MCTS Isaias Islas
  #3 (permalink)  
Antiguo 25/11/2010, 16:19
 
Fecha de Ingreso: febrero-2009
Mensajes: 312
Antigüedad: 15 años, 2 meses
Puntos: 4
Respuesta: Dudas con trigger

Hola, después de tener en cuenta lo que te dijo IISLAS, y no quieres realizar muchos cambios, siempre puedes tirar de nuestras queridas tablas temporales y despues hacer "insert into select..."

Saludos
  #4 (permalink)  
Antiguo 25/11/2010, 16:33
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Dudas con trigger

De hecho estoy buscando como hacer el fire_trigger me funciono y a la vez no, me esta repitiendo los datos al insetar en la segunda tabla... estoy buscando a ver que pudo haber fallado...

La verdad me prohiben crear tablas temporales...

La otra manera que pense es ingresar en el bulk insert un campo incremental como ID y realizar un store procedure que haga lo mismo del trigger pero como puede repetir los datos entonces darle la condición que el ID no sea el mismo... pero estoy buscando esas opciones la vdd.. si pudiera encontrar lamanera de corregir el fire_trigger estaría genial! pero pues no encuentro mucho del tema en línea :S
  #5 (permalink)  
Antiguo 25/11/2010, 18:17
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dudas con trigger

Yo no estoy de acuerdo con el uso de TRIGGERS en BULK INSERT, yo partiria el proceso en 2, subo, y depues depuro y paso a la tabla destino
__________________
MCTS Isaias Islas
  #6 (permalink)  
Antiguo 26/11/2010, 13:09
Avatar de Inicia  
Fecha de Ingreso: octubre-2010
Ubicación: Actualmente en GDL
Mensajes: 135
Antigüedad: 13 años, 6 meses
Puntos: 1
Respuesta: Dudas con trigger

Gracias, la vdd preferí crear un SP q se ejecute después del bulk insert y trabaja correctamente :)
  #7 (permalink)  
Antiguo 26/11/2010, 13:33
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 9 meses
Puntos: 180
Respuesta: Dudas con trigger

Esa es una solucion optima
__________________
MCTS Isaias Islas

Etiquetas: trigger
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 23:06.