Ver Mensaje Individual
  #14 (permalink)  
Antiguo 02/11/2012, 11:53
Avatar de Libras
Libras
Colaborador
 
Fecha de Ingreso: agosto-2006
Ubicación: En la hermosa perla de occidente
Mensajes: 7.412
Antigüedad: 14 años, 8 meses
Puntos: 774
Respuesta: Modificar multiples registros con un solo trigger

Código SQL:
Ver original
  1. --creamos la tabla alumno
  2.  
  3. CREATE TABLE alumno
  4. (
  5. nombre VARCHAR(20),
  6. STATUS INT
  7. )
  8.  
  9. --insertamos 3 registros con status=1
  10. INSERT INTO alumno VALUES ('pedro',1)
  11. INSERT INTO alumno VALUES ('juan',1)
  12. INSERT INTO alumno VALUES ('jose',1)
  13.  
  14. -los datos de alumno vemos STATUS=1
  15.  
  16. SELECT * FROM alumno
  17.  
  18. nombre               STATUS
  19. -------------------- -----------
  20. pedro                1
  21. juan                 1
  22. jose                 1
  23.  
  24.  
  25. --se crea la tabla periodo
  26. CREATE TABLE periodo
  27. (
  28. periodo datetime
  29. )
  30.  
  31. --insertamos 2 datos en la tabla periodo
  32. SELECT * FROM periodo
  33.  
  34. periodo
  35. -----------------------
  36. 2012-11-02 11:41:57.303
  37. 2012-11-02 11:42:06.380
  38.  
  39. --creamos el trigger
  40.  
  41. CREATE TRIGGER [dbo].[trg_Periodo]
  42. ON [dbo].[Periodo]
  43. AFTER INSERT
  44. AS
  45. BEGIN
  46. -- SET NOCOUNT ON added to prevent extra result sets from
  47. -- interfering with SELECT statements.
  48. SET NOCOUNT ON;
  49.  
  50. -- Insert statements for trigger here
  51. UPDATE Alumno SET
  52. STATUS = 0
  53. WHERE STATUS = 1
  54. END
  55.  
  56.  
  57.  
  58.  
  59. --insertamos un valor en la tabla periodo
  60. INSERT INTO periodo VALUES (GETDATE()+30)
  61.  
  62. --vemos que en periodo hay un dato de mas y...
  63. periodo
  64. -----------------------
  65. 2012-11-02 11:41:57.303
  66. 2012-11-02 11:42:06.380
  67. 2012-12-02 11:44:13.773
  68.  
  69.  
  70. --la tabla de alumnos quedaron todos con status=0
  71. SELECT * FROM alumno
  72.  
  73. nombre               STATUS
  74. -------------------- -----------
  75. pedro                0
  76. juan                 0
  77. jose                 0
  78.  
  79. --tu como lo estas haciendo? no tienes asi tus datos??
__________________
What does an execution plan say to t-sql query? Go f**k yourself, if you are not happy with me