10.1 SQL Server存储过程介绍
SQL Server存储过程的基本指南
简介
SQL Server存储过程将一个或多个T-SQL语句分为逻辑单元。存储过程存储在SQL Server数据库服务器中。
当第一次调用存储过程时,SQL Server会创建一个执行计划并将其存储在缓存中。在存储过程的后续执行中,SQL Server重用该计划,以快速可靠的性能执行存储过程。
创建一个简单的存储过程
以下SELECT语句从自行车商店数据库的products
(产品)表中返回产品列表:
SELECT product_name, list_price FROM production.products ORDER BY product_name;
使用CREATE PROCEDURE
语句创建一个包装上述SQL语句的存储过程:
CREATE PROCEDURE uspProductList AS BEGIN SELECT product_name, list_price FROM production.products ORDER BY product_name; END;
其中:
uspProductList
是存储过程名字,AS
关键字分隔存储过程的头部和主体部分。
如果存储过程只有一条语句,则该语句的开始的BEGIN
和结尾的END
关键字是可选的。
然而,通常都会写上,这样代码更清晰。
CREATE PROCEDURE
可以缩写成CREATE PROC
。
要编译此存储过程,可以在SQL Server Management Studio中将其作为普通SQL语句执行,如下图所示:
执行成功:
Commands completed successfully.
这说明存储过程已成功编译并保存到数据库目录中。
可以在Programmability>Stored Procedures
(可编程性>存储过程
)下找到存储过程:
执行存储过程
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;
然后点击执行按钮执行:
Commands completed successfully.
现在,再次执行存储过程,将看到更改生效:
EXEC uspProductList;
删除存储过程
DROP PROCEDURE sp_name; --或者 DROP PROC sp_name; --比如删除uspProductList DROP PROCEDURE uspProductList;
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】凌霞软件回馈社区,博客园 & 1Panel & Halo 联合会员上线
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】博客园社区专享云产品让利特惠,阿里云新客6.5折上折
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 微软正式发布.NET 10 Preview 1:开启下一代开发框架新篇章
· DeepSeek “源神”启动!「GitHub 热点速览」
· C# 集成 DeepSeek 模型实现 AI 私有化(本地部署与 API 调用教程)
· DeepSeek R1 简明指南:架构、训练、本地部署及硬件要求
· NetPad:一个.NET开源、跨平台的C#编辑器