SQL Server 存储过程:创建、执行与结果返回全解析
1. 存储过程基础与构建选项
存储过程为了向后兼容进行了扩展,允许定义带有默认值的新参数,这样就无需修改每个调用代码。当从如 .NET 、Excel 等代码中调用存储过程时,每个参数都需要命名。
存储过程首次运行且过程缓存中不存在现有计划时,会被编译成执行计划,这是 SQL Server 中的内部数据结构,描述了如何执行存储过程中请求的操作。SQL Server 会存储编译后的代码以供后续执行,节省时间和资源。若过程缓存中已有计划,SQL Server 将使用该计划。
不过,存储过程的 RECOMPILE 选项会指示 SQL Server 每次运行存储过程时都重新编译整个过程。通常,当参数会极大影响返回的行数时,可添加 RECOMPILE 选项,以强制优化器每次都生成最佳计划。
另一个选项是 ENCRYPTION 关键字,它可以对存储过程进行加密(至少是混淆),使存储过程的内容不易被查看。需注意, ENCRYPTION 并不保护数据,而是保护源代码不被检查和修改。 ENCRYPTION 和 RECOMPILE 都以 WITH 关键字开头,可通过逗号分隔一起使用,示例代码如下:
CREATE PROCEDURE b_NS^N]^cWX]V
WITH ENCRYPTION, RECOMPILE
超级会员免费看
订阅专栏 解锁全文
5744

被折叠的 条评论
为什么被折叠?



