Précédent   Forum du club des développeurs et IT Pro > Bases de données > MS SQL-Server > Développement
Développement Forum d'entraide sur le Transact-SQL, le CLR, les procédures stockées, les triggers, les requêtes SQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 12/12/2012, 16h38   #1
Nikko42
Invité régulier
 
Homme
Développeur informatique
Inscription : novembre 2011
Messages : 53
Détails du profil
Informations personnelles :
Sexe : Homme

Informations professionnelles :
Activité : Développeur informatique
Secteur : High Tech - Multimédia et Internet

Informations forums :
Inscription : novembre 2011
Messages : 53
Points : 9
Points : 9
Par défaut Insertion avec condition trigger

Bonjour à tous,

Je viens de me creuser la tête à faire un trigger, qui fonctionne certes, mais pas comme je le voudrais :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
ALTER TRIGGER [dbo].[TRnumComInsert] ON [dbo].[TBcommande]
 
FOR INSERT
 
AS
BEGIN
  declare @numCom AS int
 
SET @numCom = isnull((SELECT max(numCom) FROM TBcommande) ,0) + 1
 
UPDATE TBcommande SET numCom = @numCom 
WHERE idCom = (SELECT idCom FROM inserted)
END
En gros, il incrémente le numéro de commande de 1 par rapport au maximum des num commande.
Ok, par contre, j'ai dans ma base des données qui doivent être insérées dans des lignes suivantes, sauf que certaines auront le même numéro de commande (là, le numéro change à chaque ligne).

En gros, j'aimerais utiliser cette requête :
Code :
1
2
3
4
SELECT * FROM TBcommande
WHERE idCom IN (
SELECT max(idCom) FROM TBcommande
)
Elle me permet de visualiser le dernier enregistrement, et dans le résultat de celle-ci, il y a deux colonnes qui possèdent ou non la valeur NULL.

J'aimerais en fait pouvoir comparer avant l'insertion si mes deux colonnes sont <> NULL, alors on incrémente avec le trigger, si non, on garde le même numéro commande que le précédent.

Est-ce possible déjà ?

Merci
Nikko42 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 14/12/2012, 09h19   #2
Sergejack
Membre émérite
 
Inscription : juillet 2006
Messages : 1 331
Détails du profil
Informations forums :
Inscription : juillet 2006
Messages : 1 331
Points : 887
Points : 887
Votre demande n'est pas claire.

Quelles sont les lignes que vous voulez mettre en relation ? Qu'est-ce qui lie ces lignes entre elles ? etc.
__________________
Où est votre sens de l'humour ?
Sergejack est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 15h10.


 
 
 
 
Partenaires

Hébergement Web