SQL Server 中的存储过程

时间:2021-12-17 09:12:32

一:初步了解存储过程的使用

创建一个简单的存储过程

 CREATE PROC spEmployee
AS
SELECT * FROM HumanResources.Employee;

执行这个存储过程:

EXEC spEmployee;

删除存储过程:

 --删除存储过程
DROP PROC spEmployee

二:参数化存储过程

带参数初步体验:

 CREATE PROC spEmployeeByName
@LastName nvarchar(50) --定义一个参数 类型为 nvarchar
AS SELECT p.LastName, p.FirstName, e.JobTitle, e.HireDate
FROM Person.Person p
JOIN HumanResources.Employee e
ON p. BusinessEntityID = e.BusinessEntityID --从两张表中选取信息
WHERE p.LastName LIKE @LastName + '%'; --存储过程的 条件

执行带参数的存储过程:

EXEC spEmployeeByName 'Dobney';  --直接附加参数的值即可

给参数提供一个默认值(为了参数是可选的):

CREATE PROC spEmployeeByName
@LastName nvarchar(50) = NULL --将参数 LastName 的值 赋值为 NULL
AS
IF @LastName IS NOT NULL -- 做条件判断
SELECT p.LastName, p.FirstName, e.JobTitle, e.HireDate
FROM Person.Person p
JOIN HumanResources.Employee e
ON p.BusinessEntityID = e.BusinessEntityID
WHERE p.LastName LIKE @LastName + '%'; --注意这句
ELSE
SELECT p.LastName, p.FirstName, e.JobTitle, e.HireDate
FROM Person.Person p
JOIN HumanResources.Employee e
ON p.BusinessEntityID = e.BusinessEntityID;

创建输出参数: