存储过程

--1.0 创建存储过程

CREATE PROCEDURE usp_GetClass

AS

SELECT * FROM Classes

--2.0 调用存储过程

EXECUTE GetClass

--3.0 命名规范,系统存储过程以sp_或者xp_开头,我们自己定义的存储过程则以usp_开头

--4.0 系统自带存储过程

--5.0 创建带参数的存储过程

--5.1 创建

ALTER PROCEDURE usp_GetClass

@id INT = 2,--定义变量时,可以给默认值

@name nvarchar(10)

AS

BEGIN

SELECT * FROM Classes WHERE CID=@id

SELECT * FROM Classes WHERE CName=@name

END

--5.2 调用

EXEC usp_GetClass @id=1,@name='五六七'

--6.0 输出参数

--6.1 创建

ALTER PROCEDURE usp_GetClass

@id INT = 2,

@name nvarchar(10),

@totalCount INT=0 OUTPUT--定义一个输出参数

AS

BEGIN

SELECT * FROM Classes WHERE CID=@id

SELECT * FROM Classes WHERE CName=@name

SELECT @totalCount=Count(*) FROM Classes

END

--6.2 调用

DECLARE @total INT=0

EXEC usp_GetClass @name='五六七',@totalCount=@total OUTPUT--指定一个变量给输出参数

--在存储过程执行完毕之后就可以通过变量得到数据了

SELECT @total

--7.0 分页存储过程

--7.1 创建

CREATE PROC usp_GetClassPage

@pageIndex INT=1,

@pageSize INT=10

AS

BEGIN

SELECT * FROM(SELECT ROW_NUMBER() OVER(ORDER BY CID) AS rownum,* FROM Classes) AS t

WHERE t.rownum BETWEEN @pageSize*(@pageIndex-1)+1 AND @pageIndex*@pageSize

END

--7.2 调用

EXEC usp_GetClassPage 3,2

原文地址:https://www.cnblogs.com/HuoAA/p/4103647.html