nostrea | Bonjour a tous.
Voila je decouvre les trigger et je souhaiterai réaliser la chose suivante :
Tout d'abords je dispose de 3 tables
[B]INTERFACE_RESEAU[/B] [AdresseMAC, AdresseIP, ID_Machine_FK]
[B]MACHINE[/B] [ID_Machine -> auto_increment, xxxx, xxxx, xxxx ...]
[B]recep_ip_new_machine[/B] [ip, mac]
Mon but etant d'inserer pour chaque ligne de ma table [B]recep_ip_new_machine[/B] les données dans ma table [B]INTERFACE_RESEAU[/B] (donc au fur et a mesure que ma table recep_ip se remplit, executer le trigger d'insertion qui suit pour remplir la table INTERFACE)
Pour cela je suis obligé de faire un insert dans la table [B]MACHINE[/B] afin d'incrémenter un ID_Machine pour le recuperer puis l'inserer avec ip et mac dans la table INTERFACE_RESEAU (car champ obligatoire).
Voila le trigger que j'ai réalisé en suivant les infos glanées sur le net mais ca ne fonctionne pas.
Code :
- USE [test_2_IDHI8430]
- SET ANSI_NULLS ON
- GO
- SET QUOTED_IDENTIFIER ON
- GO
- CREATE TRIGGER testouille
- ON recep_ip_new_machine
- FOR INSERT
- AS
- BEGIN
- DECLARE @IP NCHAR(15)
- DECLARE @MAC NCHAR(17)
- DECLARE @max_id INT
- SET @IP = (SELECT ip FROM recep_ip_new_machine)
- SET @MAC = (SELECT mac FROM recep_ip_new_machine)
- INSERT INTO MACHINE (NomDNS, NomNetBIOS, NomHote, Role, DateIntegration_FK,
- DateDerniereMAJ_FK, ID_Infrastructure_FK, ID_ResponsableMachine_FK, ID_SystemeExploitation_FK)
- VALUES ('temp', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
-
- SET @max_id = (SELECT MAX(ID_MACHINE) FROM MACHINE)
-
- INSERT INTO INTERFACE_RESEAU (AdresseMAC, AdresseIP, ID_Machine_FK)
- values (@MAC, @IP, @max_id)
- END
|
Si vous pouviez m'aider ce serait formidable Message édité par nostrea le 02-07-2007 à 10:57:34
|