存储过程
--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