【发布时间】:2017-08-20 09:41:30
【问题描述】:
我有一个 Oracle 过程来向 JOB_HISTORY 表添加一行,以及一个触发器来在 table EMPLOYEES 中的两列( job_id, department_id) 上更新数据时调用该过程:我正在尝试为 Sql server 2008 重写它们,有人可以帮我重写它们吗?我可能已经用程序完成了它,但不能用触发器完成它。欢迎任何建议?
程序:
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;
触发器:
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;
这就是我编写程序的方式,但我不确定是否与上述程序做同样的事情。
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 ;
【问题讨论】:
标签: tsql stored-procedures sql-server-2008-r2 database-migration database-trigger