在本教程中,将学习如何在SQL Server中管理存储过程,包括创建,执行,修改和删除存储过程。
创建简单的存储过程
以下SELECT语句返回bb_stores
示例数据库中products
表的产品列表:
SELECT
product_name,
list_price
FROM
production.products
ORDER BY
product_name;
要创建包装此查询的存储过程,请使用CREATE PROCEDURE
语句,如下所示:
CREATE PROCEDURE uspProductList
AS
BEGIN
SELECT
product_name,
list_price
FROM
production.products
ORDER BY
product_name;
END;
在这个语法中:
uspProductList
是存储过程的名称。AS
关键字分隔存储过程的标题和正文。
如果存储过程有一个语句,则语句周围的BEGIN
和AND
关键字是可选的。 但是,最好包含它们以使代码清晰。
请注意,除了CREATE PROCEDURE
关键字之外,还可以使用CREATE PROC
关键字使语句更短。
要编译此存储过程,请在SQL Server Management Studio中将其作为普通SQL语句执行,如下图所示:
如果代码正确,那么将看到以下消息:
Commands completed successfully.
那么表示存储过程已成功编译并保存到数据库目录中。
可以在对象资源管理器中的可编程性 -> 存储过程 下找到存储过程,如下所示:
有时,需要单击“刷新”按钮以手动更新对象资源管理器中的数据库对象。
执行存储过程
要执行存储过程,请使用EXECUTE
或EXE
C语句,后跟存储过程的名称:
EXECUTE sp_name;
或
EXEC sp_name;
其中sp_name
是要执行的存储过程的名称。
例如,要执行uspProductList
存储过程,请使用以下语句:
EXEC uspProductList;
存储过程返回以下输出:
修改存储过程
若要修改现有存储过程,请使用ALTER PROCEDURE
语句。
首先,通过右键单击存储过程名称打开存储过程以查看其内容,然后选择“修改”菜单项:
其次,通过按价格而不是产品名称对产品进行排序来更改存储过程的主体:
ALTER PROCEDURE uspProductList
AS
BEGIN
SELECT
product_name,
list_price
FROM
production.products
ORDER BY
list_price
END;
第三步,单击执行按钮,SQL Server修改存储过程并返回以下输出:
Commands completed successfully.
现在,如果再次执行存储过程,将看到更改生效:
EXEC uspProductList;
得到以下输出结果:
删除存储过程
要删除存储过程,请使用DROP PROCEDURE
或DROP PROC
语句:
DROP PROCEDURE sp_name;
或者,
DROP PROC sp_name;
其中sp_name
是要删除的存储过程的名称。
例如,要删除uspProductList
存储过程,请执行以下语句:
DROP PROCEDURE uspProductList;
在本教程中,学习了如何管理SQL Server存储过程,包括创建,执行,修改和删除存储过程。
以下是纠正/补充内容:
如果存储过程有一个语句,则语句周围的BEGIN和AND关键字是可选的改为“如果存储过程有一个语句,则语句周围的BEGIN和END关键字是可选的" 提交时间:2019-10-10