Précédent   Forum des professionnels en informatique > Bases de données > MS SQL-Server
MS SQL-Server Forum Microsoft SQL-Server. Avant de poster -> FAQ SQL-Server, Tutoriels SQL-Server
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 15/02/2011, 11h45   #1
Membre régulier
 
Olivier Albertini
Inscription : avril 2006
Messages : 194
Détails du profil
Informations personnelles :
Nom : Olivier Albertini

Informations forums :
Inscription : avril 2006
Messages : 194
Points : 77
Points : 77
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 :
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 !!
lerieure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 15/02/2011, 14h04   #2
Membre régulier
 
Olivier Albertini
Inscription : avril 2006
Messages : 194
Détails du profil
Informations personnelles :
Nom : Olivier Albertini

Informations forums :
Inscription : avril 2006
Messages : 194
Points : 77
Points : 77
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...
lerieure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 16/02/2011, 13h41   #3
Rédacteur/Modérateur

 
Avatar de SQLpro
 
Homme Frédéric BROUARD
Expert SGBDR & SQL
Inscription : mai 2002
Messages : 10 950
Détails du profil
Informations personnelles :
Nom : Homme Frédéric BROUARD
Localisation : France

Informations professionnelles :
Activité : Expert SGBDR & SQL
Secteur : Conseil

Informations forums :
Inscription : mai 2002
Messages : 10 950
Points : 17 769
Points : 17 769
Postez le code complet de votre trigger. Sans cela impossible de vous aider !

A +
__________________
Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
Site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
Blog SQL, SQL Server, modélisation données : http://blog.developpez.com/sqlpro
http://www.sqlspot.com : modélisation, conseils, audit, optimisation, formation
* * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *
SQLpro est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 10h54.


 
 
 
 
Partenaires

Hébergement Web