定义
系统存储过程
代码片段
--存储过程
--方法说明:
--方法名称 参数 调用
--参数主要是一一对应的原则
-- 1.类型对应 --子类可以替换父类 int--double
-- 2.数量对应 --默认值,可变参数
-- 3.顺序对应 --可以使用参数 参数:值的方法调用
--返回值:通过return 返回值。但是只能返回单个值
--可以通过Ref/Out扩展方法的“返回值”
--创建存储语法
--GO
--Create Procedure usp_存储过程名称
--(形参) 可以再这个里面定义参数
--AS --相当于方法体
--{
-- 自定义局部变量
-- 逻辑语句
--}
--GO
--实例
--1.查询所有User用户[dbo].[sys_user]
--首先判断当前这个SP是否已经存在
IF EXISTS(SELECT *FROM sysobjects WHERE name='usp_GetAllUsersInfo')
drop Procedure usp_GetAllUsersInfo --其中Procedure可以简写为 Proc
GO
CREATE Procedure usp_GetAllUsersInfo
--此处没有参数
AS
SELECT *FROM [dbo].[sys_user]
GO
--接下来开始调用SP
execute usp_GetAllUsersInfo --其中Execute可以简写成EXEC
--2.查询指定性别的User信息
IF EXISTS(SELECT *FROM sysobjects WHERE name='usp_GetAllUserInfoByGender')
drop Procedure usp_GetAllUserInfoByGender
GO
CREATE Procedure usp_GetAllUserInfoByGender
@gender char(2) --形参只是声明,不是定义,所以不需要Declare,多个参数使用逗号隔开
AS
Select *FROM [dbo].[sys_user] WHERE gender=@gender
GO
--调用存储过程
Execute usp_GetAllUserInfoByGender 1
多个参数
多个参数,需要使用逗号分隔开,调用的时候遵循一一对应原则
采用默认值
默认值在声明的时候赋值,调用的时候应采用Default占位
特别注意的是:
- 如果想在调用SP时省去填写默认值对应的占位符Default,可以在声明参数时,将赋有默认值的参数放在没有默认值的参数之后;
- 此外,也可以采用name=value这样的方式来给参数赋值,从而忽略参数顺序,但是一旦采用此种赋值方式,那么所有参数都必须采用这样的赋值方式
输出参数
创建有返回值的存储过程
SqlDataAdapter调用存储过程
调用有参数的存储过程
多参数存储过程调用
调用有输出参数的存储过程?