- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
                        查看更多
                        
                    
                本次练习的目标是创建标量函数、内联表值函数以及多语句表值函数。 用户定义函数的类型 创建标量函数 创建内联表值函数 创建多语句表值函数 * * 第 9 章创建函数、存储过程和触发器 函数概述  标量函数和表值函数  确定性函数和非确定性函数 存储过程概述  创建存储过程 执行存储过程 查看、重命名和删除存储过程 触发器概述 DML触发器的创建和应用 DDL触发器的创建和应用  查看、修改和删除触发器 函数概述:   提问:         有没有这样一种方法,它既能像存储过程那样封装一些复杂的T-SQL 代码,并根据需要设置参数,同时又能返回程序所需的值呢?        在SQL SERVER 2005 中,函数是用于封装频繁执行的逻辑的例程。任何必须执行的代码都可调用函数,而无需重复所有的函数逻辑。   知识点: 学完本节后,你应能够了解:    不同类型的函数;    标量函数的工作方式;    表值函数的工作方式(内联表值函数和多语句表值函数);     确定性和非确定性函数。   函数:         函数是由一条或多条T-SQL 语句组成的例程,可用于封装代码以便进行重用。函数接受零个或多个输入参数,并返回标量值或表。函数不支持输出参数。 函数类型:   标量函数:         标量函数返回单个数据值,并且其类型是在RETURNS子句中定义的。   内联表值函数:         内联表值函数返回一个表,该表是单个SELECT 语句的结果。它类似与视图,但是比视图提供了更多的灵活性,因为可向函数提供参数。   多语句表值函数:         多语句表值函数返回由一条或多条T-SQL 语句构建的表并且类似于存储过程。 函数类型(续):         与存储过程不同的是,多语句表值函数可以在 SELECT 语句的FROM 子句中进行引用,就像它是视图或表一样。 标量函数和表值函数: 标量函数:   创建标量函数: RETURNS 子句指定数据类型 函数在BEGIN··· END 块中定义   举例:         用代码创建一个标量函数,它累加了AdventureWorks数据库中某件特定产品的所有销售量,并将总计作为int 型数据返回。 --  创建标量函数 Sales.SumSold ,并接受一个int 型的输入参数@ProductID ,一个int型的返回值。 --  该标量函数返回指定产品的总销售量。 CREATE FUNCTION Sales.SumSold(@ProductID int)  RETURNS int  AS   BEGIN -- 声明变量@ret ,以存储指定产品的总销售量 	DECLARE @ret int 	SELECT @ret = SUM(OrderQty)  	FROM Sales.SalesOrderDetail WHERE ProductID = @ProductID   -- 如果@ret为空,则重新赋值0给@ret -- 如果@ret不为空,则返回变量值 	IF (@ret IS NULL)  		SET @ret = 0 	RETURN @ret END   注意:         在修改和删除函数时,可使用类似于修改和删除其他数据库对象的语法。在创建函数之后,用ALTER FUNCTION 来修改你的函数,使用DROP FUNCTION 从数据库中删除函数。   调用标量函数:         对于返回标量值的用户定义函数,允许相同数据类型的标量表达式在任何地方进行调用 。 该语句的基本语法中的选项:    ENCRYPTION选项,SQL SERVER 在存储函数定义时,对其进行加密;    SCHEMABINDING选项,防止该函数所依赖的任何对象被删除;    EXECUTE  AS 选项,指定函数的安全上下文。        当你需要依赖访问对象,但又不希望依赖与为断裂的所有权链时使用它实现安全性。 表定义中:CHECK约束。函数只能引用同一表中的列。    T-SQL 语句中:CASE 表达式中;                              PRINT 语句中(只适用于字符串函数);                              作为存储过程的RETURN语句(只适用于返回整数的标量函数)。   函数和存储过程中:作为用户定义函数的RETURN 子句,前提是被调用的用户函数返回的值可隐式转换为进行调用的函数的返回数据类型。       可使用标量函数的位置:  区域:  查询中:作为SELECT 语句中的select_list的expression;                 作为WHERE 或 HAVING子句中
                 原创力文档
原创力文档 
                        

文档评论(0)