简单个人网站,wordpress插件查询,学做网站用谁的书,本溪网站建设SQL Server如何创建存储过程 存储过程#xff1a; 可以理解为完成特定功能的一组 SQL 语句集#xff0c;存储在数据库中#xff0c;经过第一次编译#xff0c;之后的运行不需要再次编译#xff0c;用户通过指定存储过程的名字并给出参数#xff08;如果该存储过程带有参数… SQL Server如何创建存储过程 存储过程 可以理解为完成特定功能的一组 SQL 语句集存储在数据库中经过第一次编译之后的运行不需要再次编译用户通过指定存储过程的名字并给出参数如果该存储过程带有参数来调用存储过程。
如何创建存储过程 创建存储过程可以有两种方式一是在 SSMS 中界面操作创建存储过程而后修改其中的 SQL 语句及存储过程名称二是通过命令行直接编写创建存储过程。 在操作之前得要有一个数据库和数据库中将要使用存储过程查询或操作的数据表这里以 MyDBDemo 数据库为例其中有一个 sys_user 的用户数据表。 1、SSMS 界面创建存储过程 界面鼠标操作创建存储过程方便快捷一些基础的脚本不需要手动编写由 SSMS 自动生成。 步骤 展开数据库中的【可编程性】在【存储过程】上鼠标单击右键出现弹出菜单点击【存储过程】即可弹出新的查询窗口里面有一些默认的 SQL 脚本。 软件自动生成的存储过程创建脚本现在可以基于此修改存储过程中的内容了。 说明 从 第 1 行到 20 行不需要关注这些都是一些设置和注释说明第 21 行到 33 行才是存储过程的主要内容。下面将通过代码逐行介绍这些命令。
CREATE PROCEDURE Procedure_Name, sysname, ProcedureName -- 这一行表示存储过程的名称 是占位符将其替换为存储过程的名称-- 以下列出存储过程的参数以及返回参数这是设置存储过程有哪些参数和返回什么数据Param1, sysname, p1 Datatype_For_Param1, , int Default_Value_For_Param1, , 0, Param2, sysname, p2 Datatype_For_Param2, , int Default_Value_For_Param2, , 0
AS
BEGIN -- 从这里开始就是存储过程的主体部分-- 这里面的内容就是 SQL 语句集可以放置许多的 SQL 增删查改等操作脚本
END -- 这里结束存储过程表示存储过程的 SQL 集在这里结束2、SQL 脚本创建存储过程 脚本创建存储过程就是自行编写基础的创建存储过程的语句如上所示代码中的内容都是自行手动编写然后执行脚本即可创建好这个存储过程。 如下创建存储过程的脚本是传入用户的数据参数插入到数据库中而后再查询出来展示详细讲解请看注释SQL 脚本如下所示
CREATE PROCEDURE InsertUser -- 这里存储过程的名称为‘InsertUser’-- 输入参数有userno、pwd、username、role、email输出参数有 count-- 输入输出参数的名称前面必须加上 ‘’ 表示其是一个变量。userno nvarchar(50), --输入参数用户编码pwd nvarchar(50), -- 输入参数登录密码username nvarchar(50), -- 输入参数用户姓名email nvarchar(50), -- 输入参数用户邮箱count int output-- 输出参数当前数据表中的总数据条数这里输出参数采用 ‘output’ 标识
AS
BEGIN -- 从这里开始就是存储过程的主体部分-- 这里插入一条数据到数据表中数据内容来源于存储过程中传入的内容其中用户角色字段 ‘[role]’ 设置默认值为 ‘admin’INSERT INTO [dbo].[sys_user] ([userno],[pwd],[username],[role],[email])VALUES (userno,pwd,username,admin,email);-- 查询出数据表select * from [dbo].[sys_user];-- 返回值总条数查询select count ROWCOUNT;
END -- 这里结束存储过程表示存储过程的 SQL 集在这里结束存储过程的使用或调用 存储过程的使用需要采用关键字 EXEC 加上存储过程名称而后跟随参数的方式。
DECLARE pdCount INT; -- 定义返回值参数
-- 通过 exec 存储过程名称 参数列表 调用存储过程
exec [dbo].[InsertUser] usernouser-1,pwd123,usernamewanger,email123abccom,countpdCount output
select pdCount as 数据表总数 -- 查询出返回值中的内容执行结果如下所示
存储过程的意义 优点 1、存储过程加快系统运行速度存储过程只在创建时编译以后每次执行时不需要重新编译。 2、存储过程可以封装复杂的数据库操作简化操作流程例如对多个表的更新删除等。 3、可实现模块化的程序设计存储过程可以多次调用提供统一的数据库访问接口改进应用程序的可维护性。 4、存储过程可以增加代码的安全性对于用户不能直接操作存储过程中引用的对象SQL Server可以设定用户对指定存储过程的执行权限。 5、存储过程可以降低网络流量存储过程代码直接存储于数据库中在客户端与服务器的通信过程中不会产生大量的T_SQL代码流量。 缺点 1、数据库移植不方便存储过程依赖与数据库管理系统 SQL Server 存储过程中封装的操作代码不能直接移植到其他的数据库管理系统中。 2、不支持面向对象的设计无法采用面向对象的方式将逻辑业务进行封装甚至形成通用的可支持服务的业务逻辑框架。 3、代码可读性差不易维护。不支持集群。
结语 为什么需要存储过程效率高、降低网络流量、复用性高、可维护性高、安全性高。