创建一个带输入输出参数的存储过程pro_working_years,实现输入员工工号,显示其工龄的功能,
时间: 2024-02-20 11:59:22 浏览: 64
好的,以下是创建该存储过程的 SQL 代码:
```
CREATE PROCEDURE pro_working_years
@employee_id INT,
@working_years INT OUTPUT
AS
BEGIN
DECLARE @hire_date DATE
SELECT @hire_date = hire_date FROM employees WHERE employee_id = @employee_id
SET @working_years = DATEDIFF(YEAR, @hire_date, GETDATE())
END
```
该存储过程名为 `pro_working_years`,包含两个参数:`@employee_id` 为输入参数,表示员工的工号;`@working_years` 为输出参数,表示员工的工龄。
在存储过程中,我们首先声明一个 `@hire_date` 变量,用于存储员工的入职日期。然后通过查询 `employees` 表获取员工的入职日期,将其赋值给 `@hire_date` 变量。接着,我们使用 `DATEDIFF` 函数计算员工的工龄,并将结果存储在 `@working_years` 变量中。
使用该存储过程时,可以如下调用:
```
DECLARE @working_years INT
EXEC pro_working_years @employee_id = 1001, @working_years = @working_years OUTPUT
SELECT @working_years
```
其中,`@employee_id` 参数传入员工的工号,`@working_years` 参数为输出参数,需要在调用存储过程前声明,并且使用 `OUTPUT` 关键字指定为输出参数。最后,我们可以通过 `SELECT` 语句获取 `@working_years` 的值,即员工的工龄。
阅读全文