editat perDarrera edicióDiferènciesRestaurar Revisió
daniel herrera27/04/2018 16:31
@@ -41,6 +41,44 @@
 * Digues a quin dels tres nivells de l'arquitectura ANSI-SPARC (extern, conceptual i intern ) pertanyen les vistes. Argumenta la resposta.
 
 * La LOPD ens diu que els usuaris només han de consultar les dades que necessiten per a fer la seva feina. Però si donem accés de lectura a un usuari a una taula les veurà totes. Com podem fer per a que només vegi les que ha de veure. Posa un exemple.
+
+
+** Exemple solució del trigger 'super quirúrgic':
+
+    :::sql
+    alter trigger actualitza_comptador_comentaris_positius
+    on valoracions AFTER INSERT, UPDATE , DELETE 
+    as BEGIN
+    
+     with g_inserted as
+        ( select pelicula_id, count(*) as n
+            from inserted i
+            where i.valoracio_del_0_al_5 >= 3
+            group by i.pelicula_id
+            )
+     update p
+     set p.n_comentaris_positius = 
+               p.n_comentaris_positius + i.n
+     from pelicules p
+     inner join g_inserted i
+     on i.pelicula_id = p.id
+        ;
+    
+     with g_inserted as
+        ( select pelicula_id, count(*) as n
+            from deleted i
+            where i.valoracio_del_0_al_5 >= 3
+            group by i.pelicula_id
+            )
+     update p
+     set p.n_comentaris_positius = 
+               p.n_comentaris_positius - i.n
+     from pelicules p
+     inner join g_inserted i
+     on i.pelicula_id = p.id
+        ;
+    
+    END;
 Continguts: 
 
 Resultats d'aprenentatge: 
Restaurar
Consulteu nota legal i condicions