SQL Server存储过程基础

在本教程中,将学习如何在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关键字分隔存储过程的标题和正文。

如果存储过程有一个语句,则语句周围的BEGINAND关键字是可选的。 但是,最好包含它们以使代码清晰。

请注意,除了CREATE PROCEDURE关键字之外,还可以使用CREATE PROC关键字使语句更短。

要编译此存储过程,请在SQL Server Management Studio中将其作为普通SQL语句执行,如下图所示:

如果代码正确,那么将看到以下消息:

Commands completed successfully.

那么表示存储过程已成功编译并保存到数据库目录中。

可以在对象资源管理器中的可编程性 -> 存储过程 下找到存储过程,如下所示:

有时,需要单击“刷新”按钮以手动更新对象资源管理器中的数据库对象。

执行存储过程

要执行存储过程,请使用EXECUTEEXEC语句,后跟存储过程的名称:

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 PROCEDUREDROP PROC语句:

DROP PROCEDURE sp_name;

或者,

DROP PROC sp_name;

其中sp_name是要删除的存储过程的名称。

例如,要删除uspProductList存储过程,请执行以下语句:

DROP PROCEDURE uspProductList;

在本教程中,学习了如何管理SQL Server存储过程,包括创建,执行,修改和删除存储过程。


上一篇: SQL Server存储过程 下一篇: SQL Server用户定义函数