sql server 存储过程

sql server 存储过程的简述

一.定义
存储过程是一个预编译的sql语句 ,编译后可多次使用
二.优缺点
优势:响应时间上来说有优势,可以给我们带来运行效率提高的好处,且使用存储过程的系统更加稳定
缺点:维护性较差,相对于简单sql,存储过程并没有什么优势,并且在进行调试时比较困难
三.如何调用
可以用一个“execute 存储过程名 参数”命令来调用存储过程。
四.存储过程和触发器的区别
触发器与存储过程的主要区别在于触发器的运行方式。存储过程必须有用户、应用程序或者触发器来显示的调用并执行,而触发器是当特定时间出现的时候,自动执行或者激活的,与连接用数据库中的用户、或者应用程序无关。
五.举例

--存储过程的创建和调用
--系统自带
--自定义的
--1.不带参数的存储的创建和调用
--创建存储查询数据
create proc cp_select_book_byName
as
select*from books
--调用
exec cp_select_book_byName
--修改
--alter proc 存储过程名字
--删除
--drop proc 存储过程名字
--创建存储根据名称查询数据
--2.带输入的存储过程的创建和调用
go
create proc cp_select_book_byName2
(
@name nvarchar(50)
)
as
select * from books where name like '%'+@name+'%'
--调用
exec cp_select_book_byName2 'js'
--3.带输出参数的存储过程的创建和调用
--根据名称查询,返回记录,同时返回记录数
go
create proc cp_select_books_byName3
(
@name nvarchar(50),
@recordRows int out --输出类型
)
as
select * from books where name like '%'+@name+'%'
select @recordRows=count(*) from books
--调用
--定义一个变量,接收返回参数 @recordRows的值
declare @rs int
exec cp_select_books_byName3 'js',@rs out
print '查询的记录数是:'+convert(varchar(50),@rs)
--4.简单的分页的存储过程的创建和调用
--根据名称,页码,每页显示条数 
go
create proc cp_select_book_byName4
(
@name nvarchar(50),
@pageIndex int, --页码
@pageSize int,--每页显示条数
@rs int out --总记录数
)
as
select top(@pageSize) * from books where id not in(
select top (@pageSize*(@pageIndex-1)) id from books where Name like '%'+@name+'%' order by id)
and name like '%'+@name+'%' order by id
select @rs=count(*) from books where  name like '%'+@name+'%'
--调用
declare @rows int
exec cp_select_book_byName4 '',1,1,@rows out
print '总记录数:'+convert(varchar(50),@rows)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值