[trigger] Ajouter le n° de client lors d'une insertion d'enregistrement

gderenne Messages postés 3 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 5 mars 2008 - 12 févr. 2006 à 00:35
gderenne Messages postés 3 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 5 mars 2008 - 12 févr. 2006 à 14:31
Bonjour,

J'ai développé un Trigger pour concevoir un n° de client de type 2006-00011 afin de l'ajouter à l'enregistrement que mon appli inserera dans la table.

Je n'y connais rien en trigger, j'ai pas trouvé mon info sur le net (ou pas tres explicite pour un novicz comme moi...).

J'ai bien réussi à générer mon n° de client mais je ne sais pas comment faire pour écrire le numéro ainsi généré.

Donc, au final, lors d'un INSERT du nom, prénom etc, le trigger se chargera d'entrer le n° de client.

La variable qui contiend le numéro de client à ecrire dans l'enregistrement est @New_idClient

2 réponses

nhervagault Messages postés 6063 Date d'inscription dimanche 13 avril 2003 Statut Modérateur Dernière intervention 15 juillet 2011 37
12 févr. 2006 à 10:02
Salut,
sur quelle base trvaille tu?

Voila un exemple pour sqlserver

CREATE TRIGGER envoi_email
ON nom_table
FOR INSERT, UPDATE, DELETE
AS
EXEC master.dbo.xp_sendmail @recipients = 'Administrateur',
@message = 'Attention une modification a été
effectuée dans la table : nom_table.',
@subject = 'Modification sur une table.'
GO


Voila avec inserted

CREATE TRIGGER TR_TFACP200
ON TFACP200
FOR INSERT
AS

UPDATE TFACP200
SET DOCUMENT_DATE = LEFT(DDATE,2) + "/" + SUBSTRING(DDATE,3,2) + "/" +
RIGHT(DDATE,4)
WHERE ISDATE(LEFT(DDATE,2) + "/" + SUBSTRING(DDATE,3,2) + "/" +
RIGHT(DDATE,4)) = 1
AND DOCUMENT_DATE IS NULL
AND EXISTS (
SELECT 1
FROM inserted
WHERE inserted.id = TFACP200.id
)

Ces exemples sont des copier coller, en les transformant tu y arrivera, à faire ce que tu veux.
0
gderenne Messages postés 3 Date d'inscription dimanche 10 novembre 2002 Statut Membre Dernière intervention 5 mars 2008
12 févr. 2006 à 14:31
Salut,

Je travaille bien sous SQL Server de Microsoft.

Je ne comprend toujours pas car je ne saisi pas le mode de fonctionnement de "INSERTED" et puis si en plus il est possible d'y ajouter des trucs apres un "." alors...

Voici un résumé de mon code :
CREATE TRIGGER [New_idClient]
ON [dbo].[Clients]
FOR INSERT
AS
BEGIN
-- Code necessaire pour faire la variable @New_idClient

INSERT INTO Clients (idClient) VALUES (@New_idClient) FROM INSERTED
-- Est-ce correct ainsi ?
END
0