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

Trigger o procedimiento almacenado

Estas en el tema de Trigger o procedimiento almacenado en el foro de SQL Server en Foros del Web. hola chicos: tengo una pregunta para el foro. Sucede que tengo dos tablas, una que se llama boletin y otra que se llama escuchas que ...
  #1 (permalink)  
Antiguo 07/03/2008, 15:27
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Trigger o procedimiento almacenado

hola chicos:

tengo una pregunta para el foro. Sucede que tengo dos tablas, una que se llama boletin y otra que se llama escuchas que se estructuran asi:

boletin.
-Id
-mes
-notaescucha1
-notaescucha2
-notaescucha3
-notaescucha4
-conclusiones auditor

escuchas
-id
-Idboletin
-nota
-fecha

lo que necesito es que cada vez que hay una escucha nueva se copie la nota de la escucha en los campos "notaescuchaN" de la tabla boletin, y que si ya hay valor en notaescucha1 (por ejemplo) copie en el campo siguiente.


estaba pensando en un trigger pero parece que no es recomendable, por eso pregunto si es mejor un procedimiento almacenado.

saludos..
  #2 (permalink)  
Antiguo 07/03/2008, 17:19
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Trigger o procedimiento almacenado

¿Que pasa si las 4 notasescucha estan llenas?
  #3 (permalink)  
Antiguo 08/03/2008, 09:28
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Trigger o procedimiento almacenado

no permite mas ingresos a ese registro.

lo que sucede es que estoy haciendo una aplicacion para guardar escuchas que hace el depto de calidad en un callcenter. yo soy uno de los auditores, y la tabla boletines se refiere a los boletines que cada agente telefonico tiene para saber como lo esta haciendo (si esta atendiendo bien o mal el telefono).

cada agente tiene un boletin mensual, y son 4 escuchas mensuales. por eso solo admite 4 escuchas, entonces lo que quiero hacer es guardar las notas como lo plantee en la pregunta, entiendes?????

podria ser que te dijera que las 4 evaluaciones estan hechas y no es necesario una quinta.


saludos
  #4 (permalink)  
Antiguo 10/03/2008, 17:04
Avatar de iislas
Colaborador
 
Fecha de Ingreso: julio-2007
Ubicación: Mexico, D.F.
Mensajes: 6.482
Antigüedad: 16 años, 10 meses
Puntos: 180
Re: Trigger o procedimiento almacenado

Te endiendo correctamente, pero entonces tu pantalla del auditor, deberia MOSTRAR cuantas escuchas tiene disponibles, si ya no tiene ninguna, NO deberia dejarle ingresar una nueva, ¿Cierto?
  #5 (permalink)  
Antiguo 11/03/2008, 13:42
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: Trigger o procedimiento almacenado

Amen que no me parece la mejor solución ya que manejar relaciones por columnas no es escalable, te comento mi humilde opinion....

Amigo IISLAS, entiendo que el compaye Pedro indica entradas surgidas por un proceso X de BD, no por una pantalla.... con lo cuál la administración de escuchas se las dejamos a el :p.

Ahora, hay muchas opiniones encontradas en este sentido, pero en lo personal yo no recomiendo los Triggers, sencillamente he lidiado con muchos que se construyeron con el sistema al que ahora le doy soporte y para mi son una lata.... prefiero definir un único Procedimiento almacenado que ingrese las escuchas y que sea este mismo quien se encarge de actualizarlas en la tabla boletin.



Espero que te sirva!

saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....
  #6 (permalink)  
Antiguo 11/03/2008, 16:11
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Trigger o procedimiento almacenado

Bueno, primero que todo, gracias a Iislas y gabo77 por responder; segundo, la firma de gabo esta muy buena.

creo que Gabo entendio bien lo que necesitaba. Iislas lo planteo al reves de forma efectiva, o sea, encuentro tambien una buena idea que tenga unas cuantas escuchas para hacer y que te diga cuantas quedan disponibles, creo que lo orientare de esta manera.

Les cuento que mis conocimientos de estas materias son muy pocos y lo que hice fue (en buen chileno) pegarme un salto con una aplicacion que necesitamos aqui, y como nadie la sabia hacer, yo me anime con mis pocos conocimientos y ha salido todo muy bien. para ver los datos.... ningun problema. para ingresar los datos .... uufff, ha sido un poco problematico. pero en fin.

lo que estoy haciendo es SQL con interfaz en ASP. quiero ahorrar codigo y pasarle unos procedimientos al servidor SQL.

y creo que hare un procedimiento almacenado, porque el trigger podria perder control mas adelante.

ahora como voy a hacer el SP........ ahi me quebrare la cabeza nuevamente.


si alguien se anima a ayudarme como hacerlo se lo agradeceria un monton.
  #7 (permalink)  
Antiguo 12/03/2008, 14:45
Avatar de Gabo77  
Fecha de Ingreso: noviembre-2006
Mensajes: 381
Antigüedad: 17 años, 6 meses
Puntos: 6
Re: Trigger o procedimiento almacenado

Jeje, esa firma me saco de varios problemas operativos... :p

Pues podrías empezar con lo mas simple.... entendiendo un poco tu lógica sería algo como esto....

Código:
Create Procedure SpInsertaEscucha
(
    @IdEscucha As Integer,
    @IdBoletin As Integer,
    @Nota As VarChar(255), --Solo una suposicion
    @Fecha As DateTime
)As

/*Primero verificar que existe el boletín para el que va la escucha*/
If Not Exists(Select 1 From Boletin Where IdBoletin = @IdBoletin) Begin
    RaiseError('No existe boletin', 5000, 1) --Manejador de errores, esto solo es una alternativa
End

/*buscar si ya existe la escucha*/
If Exists(Select 1 From Escuchas Where IdEscucha = @IdEscucha) Begin
    /*ya existe, tenemos la opción de mandar error o actualizar.... lo que decida el cliente*/
End
Else Begin
    /*No existe, hacer la inserción de la escucha*/
End

Declare @Sql As VarChar(1000),
    @CampoUpd As VarChar(100)

Select @CampoUpd = Case /*Para obtener la primer escucha vacía*/
                                When NotaEscucha1 Is Null Then 'NotaEscucha1'
                                When NotaEscucha2 Is Null Then 'NotaEscucha2'
                                When NotaEscucha3 Is Null Then 'NotaEscucha3'
                                When NotaEscucha4 Is Null Then 'NotaEscucha4'
                        End
From Boletin
Where IdBoletin = @IdBoletin

Set @Sql = 'Update Boletin Set ' + @CampoUpd + ' = ' + Cast(@IdEscucha As VarChar) + ' Where IdBoletin = ' + Cast(@IdBoletin As VarChar)

Exec(@Sql)

Go
Saludos!
__________________
Hicimos un pacto con Dios... El no desarrolla Sistemas y nosotros no hacemos milagros....

Última edición por Gabo77; 13/03/2008 a las 18:25
  #8 (permalink)  
Antiguo 13/03/2008, 16:51
 
Fecha de Ingreso: marzo-2008
Mensajes: 8
Antigüedad: 16 años, 2 meses
Puntos: 0
Re: Trigger o procedimiento almacenado

simplemente te las mandaste...........

voy a implementarlo en la DB y te cuento

saludos y gracias.......
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 16:12.