定义

图片.png

系统存储过程

图片.png

代码片段

  1. --存储过程
  2. --方法说明:
  3. --方法名称 参数 调用
  4. --参数主要是一一对应的原则
  5. -- 1.类型对应 --子类可以替换父类 int--double
  6. -- 2.数量对应 --默认值,可变参数
  7. -- 3.顺序对应 --可以使用参数 参数:值的方法调用
  8. --返回值:通过return 返回值。但是只能返回单个值
  9. --可以通过Ref/Out扩展方法的“返回值”
  10. --创建存储语法
  11. --GO
  12. --Create Procedure usp_存储过程名称
  13. --(形参) 可以再这个里面定义参数
  14. --AS --相当于方法体
  15. --{
  16. -- 自定义局部变量
  17. -- 逻辑语句
  18. --}
  19. --GO
  20. --实例
  21. --1.查询所有User用户[dbo].[sys_user]
  22. --首先判断当前这个SP是否已经存在
  23. IF EXISTS(SELECT *FROM sysobjects WHERE name='usp_GetAllUsersInfo')
  24. drop Procedure usp_GetAllUsersInfo --其中Procedure可以简写为 Proc
  25. GO
  26. CREATE Procedure usp_GetAllUsersInfo
  27. --此处没有参数
  28. AS
  29. SELECT *FROM [dbo].[sys_user]
  30. GO
  31. --接下来开始调用SP
  32. execute usp_GetAllUsersInfo --其中Execute可以简写成EXEC
  33. --2.查询指定性别的User信息
  34. IF EXISTS(SELECT *FROM sysobjects WHERE name='usp_GetAllUserInfoByGender')
  35. drop Procedure usp_GetAllUserInfoByGender
  36. GO
  37. CREATE Procedure usp_GetAllUserInfoByGender
  38. @gender char(2) --形参只是声明,不是定义,所以不需要Declare,多个参数使用逗号隔开
  39. AS
  40. Select *FROM [dbo].[sys_user] WHERE gender=@gender
  41. GO
  42. --调用存储过程
  43. Execute usp_GetAllUserInfoByGender 1

多个参数

多个参数,需要使用逗号分隔开,调用的时候遵循一一对应原则

图片.png

采用默认值

默认值在声明的时候赋值,调用的时候应采用Default占位

图片.png

特别注意的是:

  • 如果想在调用SP时省去填写默认值对应的占位符Default,可以在声明参数时,将赋有默认值的参数放在没有默认值的参数之后;
  • 此外,也可以采用name=value这样的方式来给参数赋值,从而忽略参数顺序,但是一旦采用此种赋值方式,那么所有参数都必须采用这样的赋值方式

    输出参数

    图片.png
    图片.png

    创建有返回值的存储过程

    图片.png

    SqlDataAdapter调用存储过程

    图片.png

    调用有参数的存储过程

    图片.png

    多参数存储过程调用

    图片.png

调用有输出参数的存储过程?

图片.png