2022年SQL Server 7.0 入门(五)SQL server]教程.docx
-
资源ID:44235860
资源大小:12.66KB
全文页数:5页
- 资源格式: DOCX
下载积分:9.9金币
快捷下载
会员登录下载
微信登录下载
三方登录下载:
微信扫一扫登录
友情提示
2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
|
2022年SQL Server 7.0 入门(五)SQL server]教程.docx
2022年SQL Server 7.0 入门(五)SQL server教程运用SQL Server开发应用程序编写存储过程与触发器存储过程和触发器是由用户创建的、驻留在服务器的一组Transact SQL查询语句。触发器是系统在特定条件下执行的。存储过程能够改善应用程序的性能。当客户程序须要访问数据时,一般要经过5个步骤才能访问到数据:1)查询语句被发送到服务器。2)服务器编译SQL代码。3)优化产生查询的执行安排。4)数据引擎执行查询。5)结果发回客户程序。存储过程是在创建时编译的,当存储过程第一次执行时,SQL Server产生查询执行安排并将其存储进来,以利于将来运用。当通过存储过程发出一个恳求时,上述的第2和第3步就没有了,这能大大改善系统的性能。即使在第1步上也能提高性能。因为此时发送到服务器的语句只是一条存储过程的EXECUTE语句,而不是浩大的、困难的查询。这种特性能降低网络的流量。除了性能方面的改善外,存储过程还供应了便利地集中维护应用程序的功能。假如将查询嵌入到应用程序中。而又须要对查询进行变更,则应用程序须要重新编译,并重新发布到全部的客户端。而在存储过程中,修改对用户而言是透亮的,它只须要在服务器上重新编译存储过程。存储过程还能供应平安机制,尽管用户可能无权执行存储过程中的吩咐,但它却可能有权执行存储过程本身。有时候,系统管理员不会给用户以数据修改(UPDATE、INSERT和DELETE)的权力。创建的存储过程却能进行这些操作。当然用户须要拥有执行该存储过程的权力。建立存储过程存储过程可以达到以下目的:· 带参数。· 返回状态值。· 调用其它存储过程。· 在远程服务器上执行。存储过程在“sysobjects”系统表中有一个表项,其类型为“P”。存储过程的文本存储在“syscomments”系统表中。创建存储过程须要运用Transact SQL吩咐CREATE PROCEDURE。例如:USE pubsGOCREATE PROCEDURE ap_GetAuthorsForPublisherASSELECT a.au_lname,a.au_fnameFROM authors a, titleauthor ta, titles t, publishers pWHERE a.au_id = ta.Au_idAND ta.Title_id = t.title_idAND t.pub_id = p.pub_idAND p.pub_name = New Moon BooksGOCREATE PROCEDURE语句的语法如下:CREATE PROCDURE procedure_name ;numberparameter_name OUTPUT ,_n WITH {RECOMPILE | ENCRYPTION}FOR REPLICATIONASNumber是用来对相同名字的过程进行分组的整数。分组是将全部的过程通过drop procedure语句组合到一个分组中。parameter_name指定参数的名称。RECOMPILE表示每次执行过程时都要进行编译。ENCRYPTION表示过程的文本在“syscomments”表中要加密。FOR REPLICATION表示过程不能在提交服务器上执行。将参数传递给存储过程存储过程能够接受参数。留意:过程的参数也可以是用户定义的数据类型。给参数一个缺省值用户还可以为存储过程中的参数定义缺省值。当在执行时没有供应所需的参数时,系统就运用缺省值作为参数。假如既没有定义缺省值,又没有在执行时供应参数,则SQL Server就会返回一个错误。在存储过程中定义缺省值,并运用一些逻辑检测是否指定了参数从而实行相应的行动,这是一种很好的习惯。例如:USE pubsGOCREATE PROCEDURE ap_GetAuthorsForPublisherPublisherName varchar(40) = New Moon BooksASSELECT a.au_lname,a.au_fnameFROM authors a, titleauthor ta, titles t, publishers pWHERE a.au_id = ta.Au_idAND ta.Title_id = t.title_idAND t.pub_id = p.pub_idAND p.pub_name = PublisherNameGO