J'ai une procédure Oracle pour ajouter une ligne à la table JOB_HISTORY et un déclencheur pour appeler la procédure lorsque les données sont mises à jour sur deux colonnes (job_id, department_id)
dans le table EMPLOYEES
: J'essaie de les réécrire pour Sql Server 2008, quelqu'un peut-il m'aider à réécrire les deux s'il vous plaît? J'aurais pu le faire avec la procédure mais je ne peux pas le faire avec le déclencheur. toute suggestion est la bienvenue?Réécriture Oracle Procédure et déclencheur pour SQL Server
Procédure:
CREATE OR REPLACE PROCEDURE add_job_history
(p_emp_id job_history.employee_id%type
, p_start_date job_history.start_date%type
, p_end_date job_history.end_date%type
, p_job_id job_history.job_id%type
, p_department_id job_history.department_id%type)
IS BEGIN
INSERT INTO job_history (employee_id, start_date, end_date,job_id,department_id)
VALUES(p_emp_id,p_start_date,p_end_date,p_job_id,p_department_id);
END add_job_history;
Trigger:
CREATE OR REPLACE TRIGGER update_job_history
AFTER UPDATE OF job_id,department_id ON employees
FOR EACH ROW
BEGIN
add_job_history(:old.employee_id, :old.hire_date, sysdate,
:old.job_id,:old.department_id);
END;
Voici comment je l'ai écrit la procédure je ne sais pas fait la même chose que celle ci-dessus cependant.
CREATE PROCEDURE add_job_history
(@p_emp_id INTEGER,
@p_start_date DATE,
@p_end_date DATE,
@p_job_id VARCHAR(10),
@p_department_id INTEGER ) AS
BEGIN
INSERT INTO job_history (employee_id, start_date, end_date,
job_id, department_id)
VALUES(@p_emp_id, @p_start_date, @p_end_date, @p_job_id,@p_department_id)
END ;
certains noms peuvent ne pas être identiques aux vôtres, mais la logique est telle qu'elle est. – LONG
merci pour la réponse. Mettre deux "début" et deux "fin" me donne des problèmes je suppose. Je reçois l'erreur: L'identifiant en plusieurs parties "d.employee_id" et tous les autres champs ne peuvent pas être liés. Lorsque je supprime l'un des "end" à la fin de la requête me donne une erreur, mais seulement à la ligne de la dernière "fin" – Fab
qui n'est pas la source de problème, laissez-moi jeter un oeil dans ce nouveau – LONG