T-SQL 高阶语法之存储过程
-- 创建一个简单的存储过程,用于查询特定员工的薪水信息
CREATE PROCEDURE dbo.GetEmployeeSalary
@EmployeeID INT
AS
BEGIN
-- 确保只返回有效的员工薪水记录
SELECT s.Salary
FROM HR.EmployeeSalaries s
WHERE s.EmployeeID = @EmployeeID
AND s.EndDate IS NULL
AND s.StartDate <= GETDATE()
ORDER BY s.StartDate DESC
-- 获取最新的有效薪水记录
-- 假设每次薪水变动都会创建一条新记录,并将旧记录的EndDate设置为当前日期
-- 这里通过排序并选择顶部1条记录来实现
END
GO
这个存储过程接受一个员工ID作为参数,查询HR.EmployeeSalaries
表以找到该员工的最新薪水信息。它排除了所有已经结束的薪水记录(EndDate IS NULL
),并且只返回从当前日期开始的记录。通过排序薪水记录,它返回了最新的薪水信息。这个存储过程提供了一个简单的例子,说明了如何在实际数据库环境中使用T-SQL存储过程来查询特定的数据。
评论已关闭