Crear tabla temporal en trigger

04/06/2005 - 14:56 por Alonso | Informe spam
Necesito crear en un trigger una tabla temporal que me resuma los registros
de INSERTEd sobre un campo pues la voy a utilizar en distintas instrucciones
consecutivas.

Se puede hacer y como ?

Preguntas similare

Leer las respuestas

#6 Gustavo Larriera [MVP]
05/06/2005 - 03:44 | Informe spam
USE tempdb
GO

CREATE TABLE t (col1 INT)
GO

CREATE TABLE t2 (col1 INT)
GO

CREATE TRIGGER trg_ins_t ON t FOR INSERT
AS
CREATE TABLE #t (col1 INT)
INSERT #t
SELECT * FROM inserted
INSERT t2
SELECT * FROM #t
GO

INSERT t VALUES (1)

SELECT * FROM t2


Gustavo Larriera
Uruguay LatAm
Blog: http://sqljunkies.com/weblog/gux/
MVP profile: http://aspnet2.com/mvp.ashx?GustavoLarriera
Este mensaje se proporciona "COMO ESTA" sin garantias y no otorga ningun
derecho / This posting is provided "AS IS" with no warranties, and confers
no rights.
"Alonso" wrote in message
news:
Mostrar la cita
#7 Maxi
05/06/2005 - 18:54 | Informe spam
Hola, a ver, con variables tipo table es una forma, pero mucho cuidado, si
son muchos registros vas a tener un enorme problema de performance.

De todas maneras con una tabla temporal no seria mas que esto:


use northwind
Go

create trigger m_tr1 on customers for insert as
select * into #tbl from inserted


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Alonso" escribió en el mensaje
news:%
Mostrar la cita
#8 Jose
05/06/2005 - 20:09 | Informe spam
Yo pienso que si es para un trigger, es de esperarse que la tabla inserted
tenga pocos registros. Si no lo es pues es mejor que no use un trigger y
mejor una vista indexada. Porque los triggers (aunque tengan mucho codigo)
para mi solo son buenos cuando se insertan o modifican pequenos conjuntos de
registros (o de un solo registro).


"Maxi" wrote in message
news:
Mostrar la cita
me
Mostrar la cita
porque
Mostrar la cita
solucion
Mostrar la cita
de
Mostrar la cita
balancetipo1,
Mostrar la cita
por
Mostrar la cita
...)
Mostrar la cita
acumulado
Mostrar la cita
TRANSACCIONPROYECTO
Mostrar la cita
asi:
Mostrar la cita
proyecto.balancetipo1=proyecto.balancetipo1+I.valor
Mostrar la cita
group
Mostrar la cita
proyecto.balancetipo2=proyecto.balancetipo1+I.valor
Mostrar la cita
group
Mostrar la cita
proyecto.balancetipo3=proyecto.balancetipo1+I.valor
Mostrar la cita
group
Mostrar la cita
lo
Mostrar la cita
from
Mostrar la cita
?
Mostrar la cita
es
Mostrar la cita
un
Mostrar la cita
#9 Maxi
05/06/2005 - 20:26 | Informe spam
Hola Jose, en que te basas ? porque un trigger no quiere decir que son pocos
registros, seran todos los registros que se insertaran, imaginate luego un
paquete DTS que deba pasar datos a esta tabla de otro sistema (por ej un
Xml) con unos cuantos registros ;)


Maxi - Buenos Aires - Argentina
Desarrollador 3 Estrellas

Msn_messager:
mail: Maxi.da[arroba]gmail.com

"Jose" escribió en el mensaje
news:
Mostrar la cita
#10 Jose
05/06/2005 - 20:56 | Informe spam
Cierto, pero yo me refiero a que para pensar en resolver un problema con un
trigger debe analizarse que sea un caso donde no sea frecuente la
actualizacion de grandes conjuntos de registros. En aplicaciones comunes se
dan muchos casos de tablas donde practicamente nunca se actualiza mas de un
registro por vez . Por tanto la complejidad del codigo del trigger no le
afecta mucho.
Empero, si hay que estar haciendo DTS o enviando conjuntos voluminosos por
XML con frecuencia pues yo creo que no debe tenerse el trigger en la tabla,
y manejar esos calculos con vistas u otra forma. Ese es mi punto de vista.



"Maxi" wrote in message
news:%
Mostrar la cita
pocos
Mostrar la cita
inserted
Mostrar la cita
y
Mostrar la cita
conjuntos
Mostrar la cita
que
Mostrar la cita
pero
Mostrar la cita
llevarse
Mostrar la cita
DELETE
Mostrar la cita
hacerlo
Mostrar la cita
trigger,
Mostrar la cita
indicado
Mostrar la cita
gustaria
Mostrar la cita
si
Mostrar la cita
los
Mostrar la cita
Ads by Google
Search Busqueda sugerida