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

Cantidad de triggers en una tabla

Estas en el tema de Cantidad de triggers en una tabla en el foro de SQL Server en Foros del Web. Que tal amigos, me gustaria saber cual es la cantidad maxima de triggers aplicados a una tabla que soporta Sql Server 2008. Se pueden combinar ...
  #1 (permalink)  
Antiguo 22/05/2012, 16:14
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Cantidad de triggers en una tabla

Que tal amigos, me gustaria saber cual es la cantidad maxima de triggers aplicados a una tabla que soporta Sql Server 2008.

Se pueden combinar ambos tipos, por ej: after, instead of?

Gracias
  #2 (permalink)  
Antiguo 22/05/2012, 17:38
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Cantidad de triggers en una tabla

Puedes ver lo límites en http://msdn.microsoft.com/en-us/libr...=sql.105).aspx (Triggers per table y Nested trigger levels)

Saludos
  #3 (permalink)  
Antiguo 22/05/2012, 18:06
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Cantidad de triggers en una tabla

matanga en ""triggers per table" me dice Limited by number of objects in a database
a que se refiere exactamente? podrias darme un ejemplo? gracias
  #4 (permalink)  
Antiguo 23/05/2012, 09:45
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: Cantidad de triggers en una tabla

Si tu pregunta esta enfocada a CUANTOS TRIGGERS PUEDO DEFINIR POR TABLA, la respuesta es sencilla, UNO, que sea de INSERT, UPDATE o DELETE.

La explicacion de la pagina que te da MATANGA, se refiere a que si tienes 1000 tablas, puedes definir 1000 triggers.

Aqui la version en español.

http://msdn.microsoft.com/es-es/libr...ql.105%29.aspx
__________________
MCTS Isaias Islas
  #5 (permalink)  
Antiguo 23/05/2012, 10:14
 
Fecha de Ingreso: abril-2012
Ubicación: Capital Federal
Mensajes: 283
Antigüedad: 12 años
Puntos: 15
Respuesta: Cantidad de triggers en una tabla

Gracias iislas, te mande un privado asi vemos el asunto del rar
  #6 (permalink)  
Antiguo 23/05/2012, 12:37
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: Cantidad de triggers en una tabla

damming: En eso ando, solo que la pagina de Mediafire, anda medio fallando, en cuanto llegue a casa, lo subo.
__________________
MCTS Isaias Islas
  #7 (permalink)  
Antiguo 24/05/2012, 16:40
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Cantidad de triggers en una tabla

Cita:
Iniciado por iislas Ver Mensaje
Si tu pregunta esta enfocada a CUANTOS TRIGGERS PUEDO DEFINIR POR TABLA, la respuesta es sencilla, UNO, que sea de INSERT, UPDATE o DELETE.

La explicacion de la pagina que te da MATANGA, se refiere a que si tienes 1000 tablas, puedes definir 1000 triggers.

Aqui la version en español.

http://msdn.microsoft.com/es-es/libr...ql.105%29.aspx
Esto no es lo que quise decir, si los triggers no están anidados puedes crear por cada tabla tantos como la suma máxima de objetos en la base de datos (2.147.483.647), y si los triggers están anidados puedes crear hasta 32 por tabla, por ejemplo:

1. Triggers no anidados.

Código:
create table t1 (id int)
go
create table t2 (trigger_name varchar(10))
go
create trigger trg1 on t1 after insert
as
begin
insert into t2 values ('trg1')
end
go
create trigger trg2 on t1 after insert
as
begin
insert into t2 values ('trg2')
end
go
--esta sentencia dispara el trigger trg1 y trg2
insert into t1 values (1)
go
select * from t2
go
2. Triggers anidados.

Código:
create table t1 (id int)
go
create table t2 (trigger_name varchar(10))
go
create trigger trg1 on t1 after insert
as
begin
--esta sentencia dispara el trigger trg2
update t1 set id = 1
end
go
create trigger trg2 on t1 after update
as
begin
insert into t2 values ('trg2')
end
go
--esta sentencia dispara el trigger trg1
insert into t1 values (1)
go
select * from t2
go
Saludos
  #8 (permalink)  
Antiguo 24/05/2012, 18:06
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: Cantidad de triggers en una tabla

matanga

estoy 100% de acuerdo contigo, se me ha pasado el AFTER INSERT, entonces, tomando esa observacion, ¿cual seria exactamente la respuesta?

¿Cuantos triggers puedo definir en UNA TABLA?
__________________
MCTS Isaias Islas
  #9 (permalink)  
Antiguo 24/05/2012, 18:27
Avatar de matanga  
Fecha de Ingreso: octubre-2007
Ubicación: España
Mensajes: 1.091
Antigüedad: 16 años, 5 meses
Puntos: 85
Respuesta: Cantidad de triggers en una tabla

Si son triggers anidados, el límite es 32 por tabla.

Si no son triggers anidados, el límite esta dado por la cantidad máxima de objetos 2.147.483.647, es decir, en una base de datos con 100 tablas, 100 índices y 100 vistas, se pueden crear 2.147.483.647-300 triggers por tabla, un script simple para probarlo puede ser:

Código:
create table t1 (id int)
go
declare @i int
declare @st nvarchar(400)
set @i = 0
while (@i <100)
begin
set @st = N'
create trigger trg_' + cast(@i as nvarchar(100)) + ' on t1 after insert
as
begin
update t1 set id = 1
end'
exec sp_executesql @st
set @i = @i+1
end
go
Saludos
  #10 (permalink)  
Antiguo 25/05/2012, 10:28
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: Cantidad de triggers en una tabla

WOOOOOOOOUUUUUUUUUU !!!!!

Me gustaria ver una tabla con 2.147.483.647-300 triggers .........

Gracias.
__________________
MCTS Isaias Islas

Etiquetas: cantidad, server, sql, tabla, 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 05:35.