- 1、本文档共69页,可阅读全部内容。
- 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
2. 多语句表值函数 在 Transact-SQL 查询中允许使用表或视图表达式的情况下,可以使用表值用户定义函数 多语句表值函数返回一个由一条或多条 Transact-SQL 语句建立的表,类似于存储过程 与存储过程不同的是,多语句表值函数可以在 SELECT 语句的 FROM 子句中被引用,仿佛视图一样 视图受限于单个 SELECT 语句,而用户定义函数可包含更多语句,这些语句的逻辑功能可以比视图中的逻辑功能更加强大。 多语句表值函数示例 USE Northwind GO CREATE FUNCTION fn_Employees (@length nvarchar(9)) RETURNS @fn_Employees table (EmployeeID int PRIMARY KEY NOT NULL, [Employee Name] nvarchar(61) NOT NULL) AS BEGIN IF @length = ShortName INSERT @fn_Employees SELECT EmployeeID, LastName FROM Employees ELSE IF @length = LongName INSERT @fn_Employees SELECT EmployeeID, (FirstName + + LastName) FROM Employees RETURN END SELECT * FROM dbo.fn_Employees(LongName) 3. 内嵌表值函数 内嵌表值函数返回一个单条 SELECT 语句产生的结果的表,类似于视图 相对于视图,内嵌表值函数可使用参数,提供了更强的适应性,扩展了索引视图的功能 实际使用内嵌函数时,可以将它看作一个参数化的视图,它一样也可以从中删除和修改数据,最终删除和修改的同样是基表的数据。 不同于标量函数和多语句表值函数,在内嵌表值函数中只能指定一个RETURNS子句和一个查询,而且不能对返回的表的结构进行定义 内嵌表值函数示例 创建函数 使用参数调用函数 USE Northwind GO CREATE FUNCTION fn_CustomerNamesInRegion ( @RegionParameter nvarchar(30) ) RETURNS table AS RETURN ( SELECT CustomerID, CompanyName FROM Northwind.dbo.Customers WHERE Region = @RegionParameter ) SELECT * FROM fn_CustomerNamesInRegion(NWA) 12.4 Transact-SQL用户定义函数 在小的结果集上使用复杂的标量函数; 由于用户定义函数可能封装了复杂的实现逻辑,用户很可能并没有意识到底层计算的复杂性,消耗大量时间。所以不要在大的结果集上使用复杂的标量函数; 使用多语句表值函数代替返回表的存储过程; 可以提高性能; 使用内嵌表值函数创建参数化视图; 在视图中使用参数,可简化对表和视图的引用 使用内嵌表值函数过滤索引视图; 在索引视图上使用内嵌表值函数可以极大地提高性能。 12.5 Transact-SQL触发器 创建触发器 创建一个触发器时必须指定: 名称; 在其上定义触发器的表; 触发器将何时激发; 激活触发器的数据修改语句 一个表中可有同类型的多个 AFTER 触发器,前提条件是它们的名称各不相同;每个触发器可以执行多个函数。 一个表只能有一个给定类型的 INSTEAD OF 触发器。 使用CREATE TRIGGER命令创建触发器 CREATE TRIGGER trigger_name ON { table | view } [ WITH ENCRYPTION ] 加密{????{ { FOR | AFTER | INSTEAD OF } { [ INSERT ] [ , ] [ UPDATE ] }????????[ WITH APPEND ]????????[ NOT FOR REPLICATION ]????????AS????????[ { IF UPDATE ( column )????????????[ { AND | OR } UPDATE ( column ) ]??[ ...n ]????????| IF ( COLUMNS_UPDATED ( ) { bitwise_operator } updated_bitmask )????? { compar
您可能关注的文档
- 第3课感受道德之美详解.ppt
- 砌体工程二次构件施工工艺2012版讲述.ppt
- 第3课时唱响自信之歌详解.ppt
- 砌体施工技术交底。碧桂园讲述.ppt
- 第12章防水材料详解.ppt
- 第3课时实验一测定金属的电阻率(同时练习使用螺旋测微器)详解.ppt
- 第12章类的其它特性详解.ppt
- 第3课时用一元二次方程解决几何图形问题详解.ppt
- 砌体结构工程施工质量验收规范ppt讲述.ppt
- 砌体结构第5章讲述.ppt
- 六年级数学下册教学课件《解比例》.pptx
- 8.21.5 鸟类的生殖与发育(课件)八年级生物下册课件(苏教版).pptx
- 钠离子电池项目智能制造方案(范文参考).docx
- 2023-2024学年吉林省吉林市舒兰市七年级(上)期末语文试卷.docx
- 2024年吉林省吉林市丰满区亚桥实验学校中考数学三模试卷.docx
- 2023-2024学年吉林省辽源市东辽县七年级(上)期末英语试卷.docx
- 2023-2024学年吉林四平九年级数学第一学期期末水平检测试卷.docx
- 2023-2024学年吉林市蛟河市三校联考九年级(上)期末英语试卷.docx
- 2023-2024学年吉林松原九年级英语上册考场实战试卷.docx
- 电解液新材料项目智能制造方案.docx
文档评论(0)