SQL Server数据库服务器端编程.ppt

  1. 1、本文档共28页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
SQL Server数据库服务器端编程

重庆IT论坛 第10章 数据库服务器端编程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.1 存储过程 10.2 触发器 10.2 触发器 10.2 触发器 10.2 触发器 10.2 触发器 10.2 触发器 10.3 游标 10.3 游标 10.3 游标 10.3 游标 10.3 游标 10.3 游标 10.3 游标 10.3 游标 * * 10.1 存储过程 10.2 触发器 10.3 游标 编程学习: 为改善系统性能,数据库管理系统允许用户将完成特定功能的SQL 语句序列组织成一个存储过程(Stored Procedure)存储在数据库中,并通过指定存储过程名及参数调用相应的存储过程。 使用存储过程有如下优点: ① 存储过程进行了预编译,并且在服务器端运行,执行速度快,客户端通过调用存储过程,可使应用程序和数据库服务器间的通信量小,降低网络负载。 ② 存储过程执行一次后,其执行规划就驻留在高速缓冲存储器中,在以后的操作中,只需从高速缓冲存储器中调用已编译好的二进制代码执行,提高了系统性能。 ③ 使用存储过程可以完成所有数据库操作,并可通过编程方式控制上述操作对数据库信息访问的权限,从而确保数据库的安全。 ④ 可将一些初始化的任务定义为存储过程,当系统启动时自动执行,而不必在系统启动后再进行手工操作,大大方便了用户的使用。 1.存储过程的创建 语句格式: CREATE PROCEDURE 过程名 [( 参数定义,[ 参数定义])] AS 过程体 /*描述存储过程的操作*/ 其中,参数定义如下: [ IN | OUT | INOUT ] 参数 数据类型 存储过程的定义由三部分组成:过程名、参数和过程体。存储过程名必须满足标识符的定义,在数据库内必须唯一;存储过程可以有零个或多个参数,存储过程通过这些参数与外部交换数据,输入(IN)参数,可将数据传递给存储过程,输出(OUT)参数,可从存储过程将数据传递到外部;INOUT参数表示该参数既可用做输入参数也可用做输出参数;过程体由SQL语句序列构成。 可用DBMS(或第三方软件)提供的数据库管理工具定义存储过程。 【例10.1】 定义一个存储过程查询XSCJ数据库中每个同学各门功课的成绩。 USE XSCJ Go CREATE PROCEDURE student_grade AS SELECT XS.学号,XS.姓名,KC.课程名,XS_KC.成绩 FROM XS,XS_KC,KC WHERE XS.学号=XS_KC.学号 AND XS_KC.课程号=KC.课程号 2.存储过程的执行 存储过程的执行基于如下几种情况:① 在数据库应用程序中通过嵌入式SQL语句调用,不同的开发工具提供的调用形式不一样;② 通过DBMS(或第三方软件)提供的数据库管理工具调用,调用的语法格式取决于具体的管理工具。下面的例子是基于SQL Server 2005的查询分析器调用存储过程,后面的例子中介绍了开发数据库应用程序时,如何通过嵌入式SQL语句调用存储过程。 【例10.2】 在SQL Server 2005查询分析器中执行例10.1中的存储过程。 EXECUTE student_grade GO 注:SQL Server 2005采用EXECUTE 语句,可缩写为EXEC。 3.存储过程的删除 语句格式: DROP PROCEDURE [ 数据库名. ] 存储过程名 【例10.3】 删除例10.1中创建的存储过程student_grade。 DROP PROCEDURE student_grade 4.综合应用 【例10.4】 设计一个无参存储过程,从XSCJ数据库的3个表中查询选课学生的学号、姓名、课程名、成绩、学分。 USE XSCJ /*检查是否已存在同名的存储过程,若有,删除。*/ IF EXISTS (SELECT name FROM sysobjects WHERE name = student_info AND type = P) DROP PROCEDURE student_info GO /*创建存储过程*/ CREATE PROCEDURE student_info AS SELECT a.学号,姓名,课程名,成绩,学分 FROM XS a INNER JOIN XS_KC b

文档评论(0)

xcs88858 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档