浅谈sql-server数据库的存储过程.docx

浅谈sql-server数据库的存储过程.docx

ID:57644446

大小:29.46 KB

页数:8页

时间:2020-08-30

浅谈sql-server数据库的存储过程.docx_第1页
浅谈sql-server数据库的存储过程.docx_第2页
浅谈sql-server数据库的存储过程.docx_第3页
浅谈sql-server数据库的存储过程.docx_第4页
浅谈sql-server数据库的存储过程.docx_第5页
资源描述:

《浅谈sql-server数据库的存储过程.docx》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、浅谈sqlserver数据库的存储过程 1、什么是存储过程? 存储过程(StoredProcedure)是在大型数据库系统中,一组为了完成特定功能的SQL语句集,经编译后存储在数据库中,用户通过指定存储过程的名字并给出参数(如果该存储过程带有参数)来执行它。2、存储过程的优缺点? 优点: 存储过程的能力大大增强了SQL语言的功能和灵活性。存储过程可以用流控制语句编写,有很强的灵活性,可以完成复杂的判断和较复杂的运算。 可保证数据的安全性和完整性。 通过存储过程可以使没有权限的用户在控制之下间接地存取数据库,从而保证数据的安全。 通过存储过程可以使相关的动作在一起发生,从而可以维

2、护数据库的完整性。 缺点:调试麻烦,但是用PL/SQLDeveloper调试很方便!弥补这个缺点。 移植问题,数据库端代码当然是与数据库相关的。但是如果是做工程型项目,基本不存在移植问题。 重新编译问题,因为后端代码是运行前编译的,如果带有引用关系的对象发生改变时,受影响的存储过程、包将需要重新编译(不过也可以设置成运行时刻自动编译)。  如果在一个程序系统中大量的使用存储过程,到程序交付使用的时候随着用户需求的增加会导致数据结构的变化,接着就是系统的相关问题了,最后如果用户想维护该系统可以说是很难很难、而且代价是空前的,维护起来更麻烦。  3、存储过程的简单格式 CREATE

3、PROCEDURE[拥有者.]存储过程名[;程序编号]sql中的存储过程及相关介绍[(参数#1,…参数#1024)][WITH{RECOMPILE

4、ENCRYPTION

5、RECOMPILE,ENCRYPTION}][FORREPLICATION]AS程序行其中存储过程名不能超过128个字。每个存储过程中最多设定1024个参数(SQLServer7.0以上版本),参数的使用方法如下:@参数名数据类型[VARYING][=内定值][OUTPUT]每个参数名前要有一个“@”符号,每一个存储过程的参数仅为该程序内部使用,参数的类型除了IMAGE外,其他SQLServer所支持的数据类型

6、都可使用。[=内定值]相当于我们在建立数据库时设定一个字段的默认值,这里是为这个参数设定默认值。[OUTPUT]是用来指定该参数是既有输入又有输出值的,也就是在调用了这个存储过程时,如果所指定的参数值是我们需要输入的参数,同时也需要在结果中输出的,则该项必须为OUTPUT,而如果只是做输出参数用,可以用CURSOR,同时在使用该参数时,必须指定VARYING和OUTPUT这两个语句。  -----用户自定义存储过程   1、创建语法 ?1234567createproc

7、procedurepro_name    [{@参数数据类型}[=默认值][output],     {@参

8、数数据类型}[=默认值][output],     ....    ]as    SQL_statements    2、创建不带参数存储过程 ?12345678910--创建存储过程if(exists(select*fromsys.objectswherename='proc_get_student'))    dropprocproc_get_studentgocreateprocproc_get_studentas    select*fromstudent; --调用、执行存储过程execproc_get_student;   3、修改存储过程 ?1234--修改存储过

9、程alterprocproc_get_studentasselect*fromstudent;     4、带参存储过程 ?12345678910--带参存储过程if(object_id('proc_find_stu','P')isnotnull)    dropprocproc_find_stugocreateprocproc_find_stu(@startIdint,@endIdint)as    select*fromstudentwhereidbetween@startIdand@endIdgo execproc_find_stu2,4;     5、带通配符参数存储过

10、程 ?1234567891011--带通配符参数存储过程if(object_id('proc_findStudentByName','P')isnotnull)    dropprocproc_findStudentByNamegocreateprocproc_findStudentByName(@namevarchar(20)='%j%',@nextNamevarchar(20)='%')as    select*fromstudentwherenamelike@nameandnameli

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。