sql server存储过程简单使用

1 创建存储过程

  1.1 创建简单的存储过程

   创建语句:

create proc usp_helloworld
as
begin
    print ‘Hello World‘
end

  创建完后,调用语句格式 exec + 存储过程名:exec usp_helloworld

执行结果:

  

  1.2 创建带参数的存储过程

   语句:

create proc usp_book
@name nvarchar(50),
@author nvarchar(50)
as
begin
    select * from book where name=@name and author=@author
end

  表中的数据:

  调用存储过程,因为定义两个参数,在调用的时候需要给参数赋值。下面两种方法都行:

(1)exec usp_book "神雕侠侣","金庸"   

(2)exec usp_book @name="神雕侠侣",@author="金庸"

  执行结果:

  1.3  带默认值的存储过程

  创建语句:

create proc usp_select_hero1
@heroname nvarchar(50)  = ‘温青青‘
as
begin
    select * from hero where hero=@heroname
end

  表中数据:

  因为参数已经给了默认值,在调用存储过程的时候,可以不指定参数。

  如:直接调用:exec usp_select_hero1 结果如下:

  也可以重新给参数赋值如:exec usp_select_hero1 @heroname=‘无尘‘ 结果如下:

  1.4 创建带输出参数的存储过程output关键字

   创建语句:

create proc usp_output
@bookname nvarchar(50),
@recordCount int output --关键字代表输出参数
as
begin
    select * from hero where bookname=@bookname
    --把查询的记录条数赋值给变量@recordCount
    set @recordCount = (select count(*) from hero where bookname=@bookname)
end 

  调用带有参数的存储过程,需要定义变量,并把变量传递给参数,如下:

declare @num int
exec usp_output @bookname=‘书剑恩仇录‘,@recordCount=@num output
select @num as 记录条数

  结果:

2 使用存储过程实现分页

语句:

create proc usp_fenye
@pagesize int=3, --每页记录的条数
@index int=1,    --当前查看第几页的内容
@recordcount int output, --总的条数
@pagecount int output --总的页数
as
begin
    --分页
    select
        t.id,
        t.bookname,
        t.hero
    from (select *,rn=row_number() over(order by id asc) from hero) as t
    where t.rn between (@index-1) * @pagesize + 1 and @pagesize * @index
    --计算总的条数
    set @recordcount =( select count(*) from hero)
    --计算总的页数
    set @pagecount=ceiling(@recordcount * 1.0 / @pagesize)  --ceiling向上取整
end

执行:

declare @tiaoshu int
declare @yeshu int
exec usp_fenye @pagesize=5,@index =3,@recordcount=@tiaoshu output,@pagecount=@yeshu output
select @tiaoshu as 总的条数
select @yeshu as 总的页数

结果:

原文地址:https://www.cnblogs.com/xifengmo/p/10976591.html

时间: 2024-10-05 19:25:39

sql server存储过程简单使用的相关文章

sql server存储过程简单的使用

--创建存储过程 create proc test_proc @date datetime as select * from t_user where times between convert(datetime,CONVERT(varchar(10),DATEPART(YYYY,@date)) + '-' + CONVERT(varchar(10),DATEPART(MM,@date)) + '-' + CONVERT(varchar(10),DATEPART(DD,@date))+ CONV

简单的如何创建sql server存储过程

学习sql server数据库,sql server存储过程的建立方法是一定要知道的,下面将教您如何建立sql server存储过程,希望对您有所帮助. 在对象资源管理器中,连接到某个数据库引擎实例,再展开该实例. 展开“数据库”.sql server存储过程所属的数据库以及“可编程性”. 右键单击“存储过程”,再单击“新建存储过程”. 在“查询”菜单上,单击“指定模板参数的值”. 在“指定模板参数的值”对话框中,“值”列包含参数的建议值.接受这些值或将其替换为新值,再单击“确定”. 在查询编辑

SQL Server 存储过程具体解释

SQL Server 存储过程具体解释 存储过程的优缺点 ◆长处: 运行速度更快. 存储过程仅仅在创造时进行编译,而一般SQL语句每运行一次就编译一次,所以使用存储过程运行速度更快. 存储过程用于处理复杂的操作时,程序的可读性更强.网络的负担更小. 使用存储过程封装事务性能更佳. 能有效的放注入,安全性更好. 可维护性高.在一些业务规则发生变化时.有时仅仅需调整存储过程就可以.而不用修改和重编辑程序. 更好的代码重用. ◆ 缺点: 存储过程将给server带来额外的压力. 存储过程多多时维护比較

SQL Server 存储过程(转载)

SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储

VS中调用SQL SERVER存储过程

 存储过程是经过编译的,永久保存在数据中的一组SQL语句,通过创建和使用存储过程可以提高程序的重用性和扩展性,为程序提供模块化的功能,还有利于对程序的维护和管理.下面就详谈一下,VB.NET如何调用SQL SERVER中的存储过程. 以上就是本人数据库中的一张表-OnDutyInfo 创建存储过程 <span style="font-size:18px;">create procedure pro_OnDutyInfo --存储过程名 @teacherID char(1

SQL Server 存储过程(转)

SQL Server 存储过程 Transact-SQL中的存储过程,非常类似于Java语言中的方法,它可以重复调用.当存储过程执行一次后,可以将语句缓存中,这样下次执行的时候直接使用缓存中的语句.这样就可以提高存储过程的性能. Ø 存储过程的概念 存储过程Procedure是一组为了完成特定功能的SQL语句集合,经编译后存储在数据库中,用户通过指定存储过程的名称并给出参数来执行. 存储过程中可以包含逻辑控制语句和数据操纵语句,它可以接受参数.输出参数.返回单个或多个结果集以及返回值. 由于存储

SQL Server存储过程的使用

存储过程概述 简单来说,存储过程就是一条或者多条sql语句的集合,可视为批处理文件,但是其作用不仅限于批处理. 基本概念: SQL Server中的存储过程是使用T_SQL编写的代码段.它的目的在于能够方便的从系统表中查询信息, 或者完成与更新数据库表相关的管理任务和其他的系统管理任务.T_SQL语句是SQL Server数据库与应用程序之间的编程接口. 存储过程就是SQL Server为了实现特定任务,而将一些需要多次调用的固定操作语句编写成程序段,这些程序段存储在服务器上, 有数据库服务器通

SQL Server存储过程的初步认知

什么是存储过程? 存储过程就是作为可执行对象存放在数据库中的一个或多个SQL命令.实际上存储过程就是能完成一定操作的一组SQL语句. 为什么要用存储过程? 1.  存储过程只在创造时候编译,以后每次执行存储过程都不需要再重新的编译,而一般的SQL语句每执行一次就需要编译一次,所以使用存储过程可提高数据库执行速度. 2.  当对数据库进行复杂操作时,可将此复杂操作用存储过程封装起来与数据库提供的事物处理结合在一起. 3.  存储过程可以重复的使用,降低开发人员的工作量,提高工作效率. 4.  安全

Sql Server 存储过程中查询数据无法使用 Union(All)

原文:Sql Server 存储过程中查询数据无法使用 Union(All) 微软Sql Server数据库中,书写存储过程时,关于查询数据,无法使用Union(All)关联多个查询. 1.先看一段正常的SQL语句,使用了Union(All)查询: SELECT ci.CustId --客户编号 , ci.CustNam --客户名称 , ci.ContactBy --联系人 , ci.Conacts --联系电话 , ci.Addr -- 联系地址 , ci.Notes --备注信息 , ai