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

Tutorial de triggers con sqlserver

Estas en el tema de Tutorial de triggers con sqlserver en el foro de SQL Server en Foros del Web. Por favor si me pueden ayudar a encontrar un buen tutorial de construcción de triggers (Busqué en la WEB sin embargo lo que encuentro son ...
  #1 (permalink)  
Antiguo 22/10/2008, 10:32
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
De acuerdo Tutorial de triggers con sqlserver

Por favor si me pueden ayudar a encontrar un buen tutorial de construcción de triggers (Busqué en la WEB sin embargo lo que encuentro son mas ejemplos). Lo que necesito es estudiar desde la sintaxis, declaración de variables, impresión de mensajes, tipos, sentencias...etc.

Gracias de antemano
  #2 (permalink)  
Antiguo 22/10/2008, 13:03
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: Tutorial de triggers con sqlserver

cosmo

Un trigger, no es otra cosa que CODIGO T-SQL, ¿cual es la duda en si?
  #3 (permalink)  
Antiguo 22/10/2008, 13:14
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
De acuerdo Respuesta: Tutorial de triggers con sqlserver

Bueno; el problema es que tengo una base de datos en la cual hay 4 tablas que son muy concurridas y están demasiado expuestas entonces quiero que estás tablas estén replicadas en otro servidor al cual podrán acceder cualquier usuario (no interesa si lo borran y demas la información lo voy a tener siempre en el otro servidor); me dijeron que esto lo podía manejar con replicación transaccional pero la estructura de las tablas no me lo permite entonces alguien me recomienda que lo haga con triggers que cada vez que actualice o elimine tb lo haga en la replica que está en otro servidor y en otra bd. Nosé si me dejo entender..

Muchas gracias por la respuesta
  #4 (permalink)  
Antiguo 27/10/2008, 10:12
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Tutorial de triggers con sqlserver

a
Cita:
Iniciado por cosmo_ Ver Mensaje
Bueno; el problema es que tengo una base de datos en la cual hay 4 tablas que son muy concurridas y están demasiado expuestas entonces quiero que estás tablas estén replicadas en otro servidor al cual podrán acceder cualquier usuario (no interesa si lo borran y demas la información lo voy a tener siempre en el otro servidor); me dijeron que esto lo podía manejar con replicación transaccional pero la estructura de las tablas no me lo permite entonces alguien me recomienda que lo haga con triggers que cada vez que actualice o elimine tb lo haga en la replica que está en otro servidor y en otra bd. Nosé si me dejo entender..

Muchas gracias por la respuesta
  #5 (permalink)  
Antiguo 27/10/2008, 12:00
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: Tutorial de triggers con sqlserver

Si, podrias hacer Trigger, for delete, inserte, update y que eso lo mande a otra tabla, aunque tambien puedes hacer LOG SHIPPING.
  #6 (permalink)  
Antiguo 19/11/2008, 16:26
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Tutorial de triggers con sqlserver

GRACIAS iislas voy a investigar sobre este último (LOG SHIPPING) y comento
  #7 (permalink)  
Antiguo 27/11/2008, 13:44
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
De acuerdo Respuesta: Tutorial de triggers con sqlserver

Cita:
Iniciado por cosmo_ Ver Mensaje
GRACIAS iislas voy a investigar sobre este último (LOG SHIPPING) y comento
BUENO ..Fuí viendo respecto a log SHipping y este mismo funciona como un MIRROR es decir que se crea una base de datos identica al principal a partir del log de la BD que está en stand by. Lo que necesito es que las 2 bases de datos estén activas y que algunas tablas (las que decida) estén idénticas todo el tiempo.

AHora con respecto al uso de trigers como paso variables desde código asp a los trigers de la base de datos y tb la forma de lllamr a los trigers .....Muchas gracias pòr la ayuda. De todas maneras encontré un tutorial desde lo básico en esta dirección pero no describe esta parte.

http://www.devjoker.com/contenidos/Tutorial-de-Transact-SQL/228/Introducción-a-Transact-SQL.aspx

Última edición por cosmo_; 27/11/2008 a las 14:19
  #8 (permalink)  
Antiguo 27/11/2008, 15:14
Avatar de sobenavi  
Fecha de Ingreso: febrero-2005
Mensajes: 7
Antigüedad: 19 años, 3 meses
Puntos: 0
Mensaje Respuesta: Tutorial de triggers con sqlserver

Hola....

una aclaracion conceptual: los triggers no los llama el usuario, estos son invocados por el motor de la base de datos cada vez que se ejecuta una accion sobre un registro de la tabla (borrar, actualizar, insertar)..

Otra cosa son los store procedures.. esos si pueden ser llamados por el usuario y se les puede pasar parametros...

Para lo que kieres hacer, de mantener 2 BD iguales (necesité lo mismo con una tabla hace tiempo), lo que hice fue crear un trigger sobre mi tabla original para que cada vez que actualizaran un registro inmediatamente me actualizara la tabla del segundo servidor... el codigo del trigger me encuentra el codigo del almacen que me estan actualizando (cod_alm) y con esto llama a un store procedure que hace lo demas... el codigo del trigger es algo como asi:


CREATE TRIGGER [dbo].[updateMostrador]
ON [dbo].[mostrador]
AFTER UPDATE AS

DECLARE @cod_alm as varchar(3)

SELECT @cod_alm = cod_alm
FROM inserted
Execute sp_updateMostrador @cod_alm

donde mostrador es mi tabla origen... y AFTER UPDATE le estoy diciendo al trigger que debe ejecutarse una vez se haya actualizado el registro... (por ej.. alguien hizo un update sobre la tabla)..... en el select estoy sacando el cod_alm que acaban de actualizar (from inserted)....

y luego le digo al store procedure (sp_updateMostrador) que se ejecute y le paso como parametro el cod_alm que acabo de encontrar...

dentro del store procedure.. el codigo es algo asi:

CREATE PROCEDURE [dbo].[sp_updateMostrador]( @cod_alm varchar(3) )
AS

UPDATE [server2].bd_copia.dbo.Geografía
SET estado = m.estado
FROM bd_original.dbo.mostrador m
WHERE m.cod_alm = [Código geografía]
AND m.cod_alm = @cod_alm


Aqui server2 es un linked_server que debo definir dentro de Microsoft Sql Server Managment Studio -> Server Objects -> Linked Server.... aqui creas uno nuevo definiendole el usuario y contraseña de conexion al server2..
  #9 (permalink)  
Antiguo 27/11/2008, 23:02
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: Tutorial de triggers con sqlserver

Cosmo

En lo que respecta a que las 2 bases esten disponibles y tengan la misma informacion, debes leer sobre REPLICACION
  #10 (permalink)  
Antiguo 05/12/2008, 10:24
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
De acuerdo Respuesta: Tutorial de triggers con sqlserver

muchas gracias por responder iislas. Mira el problema es que tengo una base de datos con muchas tablas las cuales no cumplen estdarés de diseño, normalización relación de base de datos etc. Lo que pasa que este mismo lo heredé al igual que mi antecesor y así. La replicación exige ciertas condiciones en la estrucutura y cambiarlo no puedo ademas que el sistema está en producción (Complicado).

Por eso que opté por los triggers veré que pasa probaré con la opción que sugiere sobenavi y bueno lo comento luego; ahora si habría una mejor manera seria mucho mejor. Gracias sobenavi.
  #11 (permalink)  
Antiguo 30/12/2008, 13:50
 
Fecha de Ingreso: octubre-2008
Mensajes: 365
Antigüedad: 15 años, 6 meses
Puntos: 12
Respuesta: Tutorial de triggers con sqlserver

Bueno de nuevo en línea (DISCULPAS POR LA AUSENCIA). bueno implemente el trigger para eliminar e insertar registros los cuales me replican la misma operación a los datos de la otra tabla todo va bien. Pero ahora tengo un problema en los UPDATE como tb quiero que el update se replique en la otra tabla se complica un poco puesto que la tabla que uso tiene como 20 campos y suponiendo que solo se modifica un campo como puedo hacer para que el update solo afecte a ese campo?? es decir como puedo saber a que campo estoy haciendo el update.

Gracias de antemano.
  #12 (permalink)  
Antiguo 30/12/2008, 19:01
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: Tutorial de triggers con sqlserver

Amig@ cosmo_

Deberia darse una "vueltecita" por la ayuda en linea, en verdad que no le caeria nada mal.

Cheque por:

if update(title_id)
begin
  #13 (permalink)  
Antiguo 24/04/2009, 18:01
 
Fecha de Ingreso: abril-2009
Mensajes: 1
Antigüedad: 15 años
Puntos: 0
Respuesta: Tutorial de triggers con sqlserver

iislas la verdad si lees todo lo que escribiste en este tema no ayudo en nada, porque no mejor dejas que personas como sobenavi escriban lo que saben y ayuden a los demas ?
  #14 (permalink)  
Antiguo 25/04/2009, 16:22
 
Fecha de Ingreso: octubre-2000
Mensajes: 1.692
Antigüedad: 23 años, 6 meses
Puntos: 19
Respuesta: Tutorial de triggers con sqlserver

Una pregunta, es posible crear un trigger que se ejecute cada vez que se elimina una tabla especifica?, vi que se puede hacer para una tabla en general, pero no encontre que solo sea para una tabla determinada.
__________________
PD: Con amor, fe, amor a Dios y amistad podemos hacer un mundo mejor!!!!
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 12:18.