- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
3. 多语句表值函数的创建与调用 内嵌表值函数和多语句表值函数都返回表,二者不同之处在于:内嵌表值函数没有函数主体,返回的表是单个SELECT语句的结果集;而多语句表值函数在BEGIN...END 块中定义的函数主体包含T-SQL语句,这些语句可生成行,并将行插入至表中,最后返回表。 创建多语句表值函数的语法格式: CREATE FUNCTION [ owner_name.] function_name( [ { @parameter_name [AS] parameter_data_type [ = DEFAULT] }[ ,...n ] ] )RETURNS @return_variable TABLE table_definition /* @return_variable 是“表”这种数据类型的变量名*/ [ AS ] BEGINfunction_body/*将数据插入到表变量@return_variable 中*/RETURN END 【例8-24】创建多语句表值函数,通过“学号”作为实参调用该函数,可显示该学生的姓名以及各门功课的成绩和学分。 CREATE FUNCTION st_score (@no char(7)) RETURNS @score TABLE ( xs_no char(7) ,xs_name char(6) , kc_name char(10) ,cj int ,xf int ) AS BEGININSERT into @scoreSELECT s.学号,s.姓名,c.课程名,c.学分,sc.成绩FROM 学生表 s,课程表 c,选课表 sc WHERE s.学号=sc.学号 AND c.课程号=sc.课程号AND s.学号=@noRETURNEND 多语句表值函数的调用与内嵌表值函数的调用方法相同,只能通过SELECT语句调用。 【例8-25】查询“0100111”号学生的姓名以及各门功课的成绩和学分。 SELECT * FROM st_score (0100111) 显示和输出语句 PRINT 命令用于在指定设备上显示信息,可以输出的数据类型只有:char、nchar、varchar、nvarchar以及全局变量等。 PRINT 命令的语句如下:PRINT any ASCII text |@local_variable |@@FUNCTION| string_expr 说明:可以用select输出 any ASCII text:文本或字符串。 @local_variable:字符类型的局部变量, 不能同时输出多个 变量的值,如print @localname1,@localname2; @@FUNCTION:返回字符串结果的函数。 string_expr:字符串表达式,最长为8000个字符。 8.4 游标 在数据库开发过程中,当你检索的数据只是一条记录时,你所编写的事务语句代码往往使用SELECT语句。但是我们常常会遇到这样的情况,即从某一结果集中逐一地读取一条记录。那么如何解决这种问题呢?游标(Cursor)为我们提供了一种极为优秀的解决方案。就本质而言,游标实际上是一种能从包括多条数据记录的结果集中每次提取一条记录的机制。 显示每门课程的平均成绩等级:平均分=90 优秀平均分=80 良好平均分=70 中等平均分=60 及格 8.4.1 游标概述 游标是处理数据的一种方法,它允许应用程序对查询语句SELECT 返回的结果集中每一行进行相同或不同的操作,而不是一次对整个结果集进行同一种操作。为了查看或者处理结果集中的数据,游标提供了在结果集中一次一行或者多行前进或向后浏览数据的能力,我们可以把游标当作一个指针,它可以指定结果中的任何位置,然后允许用户对指定位置的数据进行处理。因此,正是游标把作为面向集合的数据库管理系统和面向行的程序设计两者联系起来,使两个数据处理方式能够进行沟通。 游标通过以下方式扩展结果处理:(1)允许定位在结果集的特定行。?? ?(2)从结果集的当前位置检索一行或多行。?? ?(3)支持对结果集中当前位置的行进行数据修改。 ?(4)为由其他用户对显示在结果集中的数据库数据所做的更改提供不同级别的可见性支持。??? (5)提供脚本、存储过程和触发器中使用的访问结果集中的数据的?T-SQL?语句。?? 8.4.2 游标的类型 SQL Server 支持三种类型的游标:T-SQL 游标,API 服务器游标和客户游标。 1. T-SQL 游标 ?T-SQL 游标是由DECLARE CURSOR 语法定义、主要用在T-SQL 脚本、存储过程和触发器中。T-SQL 游标主要用在服务器上,由从客户端发送给服务器的T-SQL 语
文档评论(0)