IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Développement SQL Server Discussion :

TRIGGER pour des suppression en CASCADE


Sujet :

Développement SQL Server

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 41
    Par défaut TRIGGER pour des suppression en CASCADE
    Bonjour,

    Je suis sous MS SQL-SERVER 7.0

    J'ai vu que les fonctions en cascades ne fonctionnent pas sur cette version.

    Pour les gérer, est-il conseillé de créer des TRIGGER pour chaque relation en necessitant le besoins ?
    Les TRIGGER remplacent-t-ils les "ON DELETE CASCADE ON UPDATE CASCADE" ?

    Et au niveau des performances, est-ce mieux ?

    Merci d'avance.

  2. #2
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 998
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 998
    Billets dans le blog
    6
    Par défaut
    1) en V 7 le seul moyen de simuler une IR avec DELETE / UPDATE CASCADE est de la faire par trigger.

    2) un trigger est toujours TRES coûteux (c'est le code le plus couteux entre UDF, trigger et proc stock)

    3) l'idée de faire du cascading est séduisante et TRES dangereuse en terme de performances. En effet toute modif ou suppression nécessite un verouillage. Avec le cascading cet effet est amplifié par un facteur exponentiel conduisant très rapidement à une quantité faramineuse de verrous, donc de la contention et très probablement des interblocages. C'est donc une solution à proscrire pour des bases :
    a) à forte volumétrie
    b) à fort traffic
    c) à grand nombre d'utilisateur.
    Sachant que toute petite base peut devenir grosse... C'est donc le genre de chose pour laquelle je conseille de ne jamais s'en serveir et de rempalcer tout cela par des proc stok de DELETE / UPDATE / INSERT qui feront le même boulot mais dans le bon sens !

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Expertise SQL Server : http://mssqlserver.fr/ * * * * *

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    41
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 41
    Par défaut
    Merci SQLpro pour ta réponse et les petites explications.

    Je vais faire cela avec des procédures stockées.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 18/01/2009, 12h32
  2. Trigger pour retirer des enregistrement
    Par k-eisti dans le forum Langage SQL
    Réponses: 3
    Dernier message: 26/06/2007, 04h40
  3. Trigger pour suppression doublons ds table
    Par lg_gaelle dans le forum PL/SQL
    Réponses: 2
    Dernier message: 18/10/2006, 15h53
  4. [Postgre Sql] requête pour suppression en cascade
    Par viny dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/10/2006, 23h39
  5. Activer les suppression en cascade pour toutes contraintes
    Par jdeboer dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 07/10/2005, 10h50

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo