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

MS SQL Server Discussion :

Pourquoi un SystemOutMemoryException dans un trigger ?


Sujet :

MS SQL Server

  1. #1
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Points : 125
    Points
    125
    Par défaut Pourquoi un SystemOutMemoryException dans un trigger ?
    Bonjour,

    tout est dans le titre

    voici le code c'est mieux que des mots

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
     
    ...
    	WHILE EXISTS(SELECT * FROM #TEMP WHERE  OK = 0)
    	BEGIN
    		SELECT TOP 1 
    				@R=TP.T_ID, 
    		FROM #TEMP TP
    		INNER JOIN TEMPLATE T ON TP.T_ID=T.TEMPLATE_ID
    		INNER JOIN T_ARBO_PLN PLN ON T.PLAN_ID=PLN.PLN_ID
    		INNER JOIN T_ARBO_STN STN ON T.STN_ID=STN.STN_ID
    		INNER JOIN T_ARBO_FAL FAL ON T.FAL_ID=FAL.FAL_ID
    		WHERE OK =0 
    		ORDER  BY POND DESC, PLN.PLN_LEVEL DESC, STN.STN_LEVEL DESC, FAL.FAL_LEVEL DESC;
    IF @@ERROR <> 0 GOTO LBL_ERROR;
     
    		UPDATE #TEMP SET OK = 1 WHERE  T_ID= @R
    		IF @@ERROR <> 0 GOTO LBL_ERROR;
     
    	END
    ....
    Ceci provoque un OutofMemory

    Pourquoi? Merci d'avance car ça m'intrigue..

    Je sais que si je supprime mes inner join et les order by il ne me fait plus l'erreur...
    Donc il faudrait que je bidouille quelque chose mais je trouve bizarre que SQL Server me sort cette erreur...

    Help me !!

  2. #2
    Membre habitué
    Profil pro
    Inscrit en
    Avril 2006
    Messages
    205
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Avril 2006
    Messages : 205
    Points : 125
    Points
    125
    Par défaut j'ai peut être une piste...
    Ne serait ce pas à cause de la table temporaire ?
    car je pense qu'en faisant des inner join sur un table temporaire ça doit garder les liaisons en mémoire tout comme la table #TEMP et du coup ça doit prendre trop de ressource...

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 865
    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 865
    Points : 53 021
    Points
    53 021
    Billets dans le blog
    6
    Par défaut
    Postez le code complet de votre trigger. Sans cela impossible de vous aider !

    A +

Discussions similaires

  1. Réponses: 4
    Dernier message: 18/10/2004, 16h18
  2. Recuperer derniere valeur modifiée dans un trigger
    Par xabs dans le forum Développement
    Réponses: 2
    Dernier message: 06/08/2004, 16h22
  3. RAZ GENERATOR dans un trigger
    Par kase74 dans le forum SQL
    Réponses: 2
    Dernier message: 08/09/2003, 18h43
  4. select dans un trigger sous Postgresql
    Par kastor_grog dans le forum Requêtes
    Réponses: 1
    Dernier message: 03/09/2003, 17h00
  5. [PostgreSQL] Refus de STATEMENT dans un trigger
    Par alex2205 dans le forum Requêtes
    Réponses: 3
    Dernier message: 10/03/2003, 12h51

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