存储过程的创建与执行

简介:

 

 
  1. set statistics io on 
  2. set statistics time on 
  3. set showplan_text on 
  4. set nocount on 
  5. /*创建一个不带参数的存储过程*/  
  6. CREATE PROC STU_ALL  
  7. AS 
  8. SELECT * FROM STUDENT  
  9. /*执行这个存储过程*/  
  10. EXEC STU_ALL  
  11. /*查看所执行存储过程的细节也就是所谓的存储过程是如何创建的*/  
  12. EXEC sp_helptext STU_ALL  
  13.  
  14. /*找出选修了课程"数据结构"的所有学生的信息*/  
  15. CREATE PROC STU_DS  
  16. AS 
  17. SELECT *  
  18. FROM STUDENT  
  19. WHERE SNO IN (SELECT SNO FROM SC WHERE CNO=(SELECT CNO FROM COURSE WHERE CNAME='数据结构'))  
  20.  
  21. EXEC STU_DS  
  22.  
  23. /*创建带参数的存储过程,格式如下:  
  24. CREATE PROCEDURE 存储过程名  
  25. 变更声明(变更名前加@)  
  26. AS 
  27. SQL 语句  
  28. */  
  29. /*output的用法:简单一点说就是带有output标识的参数在存储过程中的修改将被保存。  
  30. 如果不带,那么当存储过程运行结束后,对参数的修改将消失。如果用编程语言来形容的话,  
  31. 就是类似于值传递参数与地址传递参数一样的方式。这里要注意的是如果要设置output,形参和实参要同时设置(实参可以不写),否则会报以下错误  
  32. 形参 "@SNO" 未声明为 OUTPUT 参数,但传递进来的实参请求输出。*/  
  33. CREATE PROC STU_SNO(@SNO VARCHAR(10) output)--在写这个参数的时候必须要加括号,否则会报错:超出了存储过程、函数、触发器或视图的最大嵌套层数  
  34. AS   
  35. SELECT *   
  36. FROM STUDENT  
  37. WHERE SNO=@SNO  
  38. --执行创建的存储过程  
  39. declare @num varchar(10)  
  40. set @num='990001' 
  41. EXEC STU_SNO @num output--这个output可以不写  
  42.  
  43. --因为用到了output所以是有返回值的,返回值存储在@num中  
  44. select @num--这里只能用select而不能用print,否则是打不出东西的  

 本文转自sucre03 51CTO博客,原文链接:http://blog.51cto.com/sucre/420257,如需转载请自行联系原作者

相关文章
|
2天前
|
存储 SQL 关系型数据库
项目6总结:创建与使用存储过程
项目6总结:创建与使用存储过程
43 0
|
2天前
|
存储 SQL 定位技术
数据库基础(五):存储过程与触发器的创建、执行、修改、删除
数据库基础(五):存储过程与触发器的创建、执行、修改、删除
|
11月前
|
SQL 存储 安全
如何使用SQL语句创建触发器
如何使用SQL语句创建触发器
160 0
|
12月前
|
存储 关系型数据库 MySQL
创建存储过程以及触发器
创建存储过程以及触发器
|
存储
调用、查看、修改、删除存储过程和函数
调用、查看、修改、删除存储过程和函数
104 0