2. EMP_LIST存储过程

以下是EMP_LIST存储过程的代码:

CREATE PROCEDURE EMP_LIST
AS
BEGIN
    SELECT empno, ename, job, sal, deptno
    FROM scott.emp;
    EXECUTE EMP_COUNT;
END;

在该存储过程中,我们首先选择了scott.emp表中的所有雇员信息。接着,我们调用了EMP_COUNT存储过程,这个存储过程可以返回scott.emp表中的雇员总数。

3. 查询职工姓名及职工所在部门名称的函数

以下是查询职工姓名及职工所在部门名称的函数代码:

CREATE FUNCTION getEmpDeptName (@empno INT)
RETURNS TABLE
AS
RETURN (
    SELECT e.ename, d.dname
    FROM scott.emp e
    INNER JOIN scott.dept d ON e.deptno = d.deptno
    WHERE e.empno = @empno
);

在该函数中,我们传入了一个职工号,然后使用INNER JOIN从scott.emp和scott.dept表中检索出姓名和部门名称。

4. 更新dept表时级联更新emp表的触发器

以下是更新dept表时级联更新emp表的触发器代码:

CREATE TRIGGER updateEmpDeptno
ON scott.dept
AFTER UPDATE
AS
BEGIN
    UPDATE e
    SET e.deptno = i.deptno
    FROM scott.emp e
    INNER JOIN inserted i ON e.deptno = i.deptno;
END;

在该触发器中,我们定义了一个AFTER UPDATE触发器,当dept表中的deptno值更新时,该触发器就会被触发。在触发器的主体中,我们使用INNER JOIN将scott.emp和inserted表中的数据连接起来,并使用UPDATE语句将deptno值更新到scott.emp表中。这样就实现了级联更新。

SQL存储过程、函数和触发器示例:EMP_LIST,getEmpDeptName,updateEmpDeptNo

原文地址: https://www.cveoy.top/t/topic/nxSG 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录