FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
||||
|
||||
procedures y triggers (josi)
Hola a todos
Estoy tratando de ayudar a Josi me parece que tiene interés pero no ha sabido plantear sus preguntas. Me parece que ya se va entendiendo lo que quiere hacer y como lo va haciendo. 1- Base de datos sql server. 2- tabla inventario campos marca,modelo,cantidad,y existencia Lo que pretende es hacer un update, pero me parece que usando procedures y tigers (se lo recomendaron en el club). 3- Lo que ha hecho: un procedure
un tiger
lo que me indica es: Cita:
Cita:
Si alguno de vosotros puede darle una explicacion sencilla de como usar estos sera agradecido por Josi. Tambien se puede hacer sin usar tigers (supongo, no conozco sql server).??? Espero que colaboremos con Josi. Saludos |
#2
|
||||
|
||||
Cita:
Para cualquier alta, modificación o borrado que se haga sobre la tabla habrá que actualizar el campo (tal vez exceptuando los movimientos de "cuadrar inventario"). En cuanto a cómo hacerlo creo que entre la ayuda y los ejemplos que se pueden encontrar por internet debe ser sencillo, ya que este es uno de los casos más utilizados. Más estandard (por decirlo así) de utilización de Triggers.
__________________
Germán Estévez => Web/Blog Guía de estilo, Guía alternativa Utiliza TAG's en tus mensajes. Contactar con el Clubdelphi P.D: Más tiempo dedicado a la pregunta=Mejores respuestas. |
#3
|
||||
|
||||
Ayudando a Josi
Como ya le explicaron en algun post el problema esta en tu Stored Procedure:
En este caso se actualiza todos los productos ya que siempre Existencia= Existencia Por otro lado no necesita un stored procedure para eso (aunque puede hacerlo) Lo mejor seria hacerlo directamente en el Trigger: SQL Server crea la tabla Inserted con todos los registros que han sido insertados o actualizados durante las operaciones de inserción y actualización, en el caso de eliminacion de registros crea la tabla deleted. Los triggers se ejecutan una sola vez por cada proceso es decir si borras 10 registros el trigger se dispara una sola vez, es por eso que se debe recorrer las tablas Inserted y Deleted para poder operar sobre todos los registros afectados por el Trigger. Espero que sirva. Saludos. |
#4
|
||||
|
||||
Hola
Esto de los procedures y gatitos lo veo complicado. Ahora pienso, si lo ve complicado el Novato1, como lo verán los demás novatos, lo entenderán??. Hay alguna manera de hacer esto y que lo entienda un Novato?. El enlace de Neftali esta muy bien, pero me deja dudas. Abra algún enlace que conozcáis para un novato??, algo que indique como y para que??., no se, se me ocurre que seguiría sin entenderlo Josi. Vamos, ya se soy un pesado, pero pues vosotros sois los que sabéis. Saludos |
#5
|
||||
|
||||
trigeer
el trigger funciona pero me da el mismo problema, ejm si tengo dos filas una con valor 1 en campo 'cantidad' y otra con valor 3 en el campo 'cantidad' y le cambio el valor al campo 'cantidad' se le suma al campo 'existencia' de la primera fila y a la segunda fila vuelve y se suma el valor 3.
gracias |
#6
|
||||
|
||||
Hola
Veamos a ver si aporto algo, recordad que no se procedures ni tiggers. Tienes estos campos: marca, modelo, cantidad, existencia Quieres actualizar un campo determinado aumentandole a la existencia la cantidad deseada. Supongamos que tenemos en el campo marca (jeep) y lo colocamos en un Edit para identificar que es el que queremos actualizar. Para eso hay que usar un tigger (Como yo no se, lo haria asi):
Como ves el edit contendria la palabra Jeep y la sentencia reconoceria que si el campo marca contiene la palabra Jeep actualizara la existencia sumandole la cantidad, solo de ese campo (Jeep). Si hay otros que contengan la palabra Jeep tambien seran actualizados, por eso si se desea actualizar un campo determinado este tiene que poseer caracteristicas unicas, normalmente numericas (es lo usual). Espero que aclare un poco mas, esperemos a algun Maestro, ya te ayudaran, no todos los dias vienen hay que tener paciencia. Saludos |
#7
|
||||
|
||||
Veamos... hay algo que todavía no entiendo...
¿Estamos hablando de una actualización masiva?¿O por el contrario, de un único registro? No estoy muy puesto en SQL Server, ya le he perdido un poco la mano... (como no lo tengo instalado en mi equipo). NO estoy totalmente seguro, pero creo que la mano viene por aquí:
Supuestamente se está actualizando aquel registro (old.marca) en donde se ha detectado el nuevo valor de cantidad. (new.cantidad). Si alguien lo prueba podria decir si lo que escribí funciona o no. Saludos, |
#8
|
||||
|
||||
trigeer
cuando verifico la sintaxis dice que la columna no admite el prefijo new y old
|
#9
|
||||
|
||||
Me temía que no corriera
¡Pero que bestia! Debes anteponer los dos puntos a las variables! Es decir: :New, y :Old. Saludos, |
#10
|
||||
|
||||
trigger
cuando verifico la sintaxis dice que la columna no admite el prefijo :new y ld
|
#11
|
||||
|
||||
Hola
A ver: Los campos Marca y Cantidad tienen que ser facilitados, supongamos que en dos edit.
Traducido a Gatitos (a mi manera): Saludos |
#12
|
||||
|
||||
solucion
me funciona con el que planteo jcarteagaf
CREATE TRIGGER [TRIGGER inv] ON [dbo].[EQUIPOS] after update AS UPDATE X SET X.EXISTENCIA = X.EXISTENCIA + I.CANTIDAD FROM INVENTARIO X JOIN INSERTED I ON X.MODELO = I.MODELO gracias a Caral,Delphius,carteagaf por preocuparse por el problema que plantie, ''los que aman a Dios todas las cosas les ayudan a bien'' |
#13
|
|||
|
|||
Segun creo
Hola amigos, las variables new y old eran validas en versiones anteriores de Sql server actualmente se usa es Inserted(haciendo el papel de New) y deleted(interpretando al viejo old)
Si no es asi pues, olvidenlo digamos que a esta hora me da por decir tonterias ..... P.D : creo que en oracle si se utiliza New y Old .... |
|
|
Temas Similares | ||||
Tema | Autor | Foro | Respuestas | Último mensaje |
Terminar con Procedures. | alexxino | Varios | 3 | 28-01-2007 22:40:57 |
Ocultar código de Stored Procedures y Triggers en FireBird... | jncrls | Firebird e Interbase | 4 | 08-01-2007 16:51:52 |
Procedures con Interbase | BlueSteel | Firebird e Interbase | 3 | 29-06-2006 19:47:31 |
SQLCOD TRIGGERS + PROCEDURES firebir 1.5 | ASAPLTDA | Firebird e Interbase | 1 | 28-07-2005 22:19:13 |
Lio con Procedures!!! | diegofhernando | Varios | 8 | 12-11-2003 16:54:43 |
|