Bonjour à tous,

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

Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
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