Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1558 connectés 

  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu][TRIGGER] Insert

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[resolu][TRIGGER] Insert

n°1580885
nostrea
Posté le 29-06-2007 à 16:34:25  profilanswer
 

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 :
  1. USE [test_2_IDHI8430]
  2. SET ANSI_NULLS ON
  3. GO
  4. SET QUOTED_IDENTIFIER ON
  5. GO
  6. CREATE TRIGGER testouille
  7.    ON recep_ip_new_machine
  8.    FOR INSERT
  9. AS
  10. BEGIN
  11.     DECLARE @IP NCHAR(15)
  12.     DECLARE @MAC NCHAR(17)
  13.     DECLARE @max_id INT
  14.        SET @IP = (SELECT ip FROM recep_ip_new_machine)
  15.        SET @MAC = (SELECT mac FROM recep_ip_new_machine)
  16.     INSERT INTO MACHINE (NomDNS, NomNetBIOS, NomHote, Role, DateIntegration_FK,
  17.     DateDerniereMAJ_FK, ID_Infrastructure_FK, ID_ResponsableMachine_FK, ID_SystemeExploitation_FK)
  18.     VALUES ('temp', NULL, NULL, NULL, NULL, NULL, NULL, NULL, NULL)
  19.      
  20.     SET @max_id = (SELECT MAX(ID_MACHINE) FROM MACHINE)
  21.      
  22.     INSERT INTO INTERFACE_RESEAU (AdresseMAC, AdresseIP, ID_Machine_FK)
  23.     values (@MAC, @IP, @max_id)
  24. END


 
 
Si vous pouviez m'aider ce serait formidable :)


Message édité par nostrea le 02-07-2007 à 10:57:34
mood
Publicité
Posté le 29-06-2007 à 16:34:25  profilanswer
 

n°1580898
nostrea
Posté le 29-06-2007 à 16:55:04  profilanswer
 

Lors d'un insert dans ma table recep_ip_new_machine, voila le message d'erreur que j'obtiens :
 

Code :
  1. Msg 512, Level 16, State 1, Procedure testouille, Line 12
  2. Subquery returned more than 1 value. This is not permitted when the subquery follows =, !=, <, <= , >, >= or when the subquery is used as an expression.
  3. The statement has been terminated.


 
 
Il semble que cela provienne de l'attribution de valeur de mes deux variable @IP et @MAC.  Je pensais que par definition [U][B]le trigger s'effectuait sur chacune des ligne de la table dès leurs insertions[/B][/U]

n°1581396
nostrea
Posté le 02-07-2007 à 10:56:29  profilanswer
 

resolu (ajout de clause where dans mes select)


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  SQL/NoSQL

  [resolu][TRIGGER] Insert

 

Sujets relatifs
[Résolu]expression reguliere et date[RESOLU] Dreamweaver - Validation submit
[Résolu] - Variable inaccessible via autre fichier[Résolu] heritage des fauilles de styles
[Résolu] Question basique a propos des WebUserControl[Résolu] Pb CSS : cadre qui bouge...
[Résolu] Variables... Incroyable ![Résolu]Cherche façon plus simple de créer un site ? -> MVC
[résolu] transformer string en array (maladie ?)[Résolu] MasterPAge et Themes
Plus de sujets relatifs à : [resolu][TRIGGER] Insert


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR