Vb.net数据库编程(05):SQlserver的存储过程

前端之家收集整理的这篇文章主要介绍了Vb.net数据库编程(05):SQlserver的存储过程前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
sqlserver的存储过程

说白了,就是一个批处理过程。

就是一堆sql语句连续执行,里面可能有一些变量、流程控制,显示等。


所以首先定义一个存储过程,它就有了一批处理名,然后再调用它,可以带一些参数。


  1. useSales
  2. go
  3. @H_502_41@create@H_502_41@proceduredemo_proc
  4. (@@H_502_41@name@H_502_41@char(16)='sqlServer',@major@H_502_41@int=2005,@minor@H_502_41@int=0)
  5. @H_502_41@as
  6. print@@H_502_41@name+STR(@major,5)+'.'+STR(@minor,5)

变量以@开始,@name char(16)='sql Server'就是变量name,类型char,16字长,默认值sql Server。

后面print就是显示 ,STR就是把数据字转换为字符串,总长度(含小数点)为5.



第二步就是执行它:


后面不跟参数时,就按照原参数样式(默认值)来执行。

后面的跟参数就按参数进行显示,其中default就是原来的默认值。没参数也是按原来 的默认值。





下面再创建一个存储过程,并执行

?
    --创建存储过程
  1. useSales
  2. go
  3. @H_502_41@create@H_502_41@procedureGetStudentCount
  4. @v_math@H_502_41@int
  5. @H_502_41@as
  6. print'数学成绩高于输入参数的学生有:'
  7. @H_502_41@selectcount(*)@H_502_41@fromgrade@H_502_41@where数学>@v_math
  8. --下面是调用过程
  9. @H_502_41@executeGetStudentCount60

结果就是:




另一个存储过程例子

有时把用户名和密码保存在一个表中。

用户进来后,进行验证。

看下这个存储过程:

?
    --先创建一个存在用户名和密码的表
  1. @H_502_41@create@H_502_41@tableWebUsers
  2. (username@H_502_41@varchar(20),
  3. userpass@H_502_41@varchar(10)
  4. )
  5. @H_502_41@insert@H_502_41@intowebusers@H_502_41@values('aa','aa')
  6. @H_502_41@insert@H_502_41@intowebusers@H_502_41@values('bb','bb')
  7. --然后,创建带输入输出参数的存储过程
  8. @H_502_41@create@H_502_41@proceduresp_CheckPass
  9. (@CHKName@H_502_41@varchar(30),@CHKPass@H_502_41@varchar(30),@ISValid@H_502_41@varchar(12)@H_502_41@output)
  10. ifexists(@H_502_41@selectUserName@H_502_41@fromWebUsers@H_502_41@whereUserName=@CHKNameAndUserPass=@CHKPass)
  11. @H_502_41@select@ISValid='Good'
  12. @H_502_41@else
  13. @H_502_41@select@ISValid='Bad'
  14. --测试存储过程
  15. @H_502_41@declare@aa@H_502_41@varchar(12)
  16. @H_502_41@execsp_CheckPass'aa','aa',@aa@H_502_41@output
  17. @H_502_41@select@aa@H_502_41@as'返回值'

注:上面output是作用输出的。

官方解释:返回受 INSERT、UPDATE、DELETE 或 MERGE 语句影响的各行中的信息,或返回基于受这些语句影响的各行的表达式。

这些结果可以返回到处理应用程序,以供在确认消息、存档以及其他类似的应用程序要求中使用。也可以将这些结果

插入表或表变量。另外,您可以捕获嵌入的 INSERT、UPDATE、DELETE 或 MERGE 语句中 OUTPUT 子句的结果,然后

将这些结果插入目标表或视图。


结果如下:


存储过程就这么回事,就一批处理过程。

只不过深究其中的语法有很多。

猜你在找的VB相关文章