SQL Server 数据库中的存储过程

存储过程简介

存储过程(Stored Procedure)是一组预编译的 SQL 语句和可选的控制逻辑(如条件判断、循环等),存储在数据库中,以便重复执行。存储过程可以接收参数,返回结果集或影响行数。

如何管理存储过程

  • PROCEDURE 存储过程关键字

创建存储过程

1
2
3
4
5
6
7
8
CREATE PROCEDURE 存储过程名称
@EmployeeID INT
AS
BEGIN
SELECT EmployeeID, FirstName, LastName, Email
FROM Employees
WHERE EmployeeID = @EmployeeID;
END;

使用存储过程

1
EXEC 存储过程名称 @EmployeeID = 1;

带有输出参数的存储过程

1
2
3
4
5
6
7
8
9
CREATE PROCEDURE 存储过程名称
@DepartmentID INT,
@TotalSalary DECIMAL(18, 2) OUTPUT
AS
BEGIN
SELECT @TotalSalary = SUM(Salary)
FROM Employees
WHERE DepartmentID = @DepartmentID;
END;

调用带有输出结果的存储过程

1
2
3
DECLARE @Total DECIMAL(18, 2); --定义变量Total
EXEC 存储过程名称 @DepartmentID = 2, @TotalSalary = @Total OUTPUT; --会输出TotalSalary结果存储到Total中
PRINT @Total; --输出Total的值

修改存储过程

1
2
3
4
5
6
7
8
ALTER PROCEDURE 存储过程名称
@EmployeeID INT
AS
BEGIN
SELECT EmployeeID, FirstName, LastName, Email, DepartmentID
FROM Employees
WHERE EmployeeID = @EmployeeID;
END;

删除存储过程:

1
DROP PROCEDURE 存储过程名称;