触发器的创建和管理
触发器和权限管理课件

触发器和权限管理
19
授予权限或角色- 授予对象权限
l Oracle对象权限指用户在指定的表上进行特殊操作的权利。 l 在GRANT关键字之后指定对象权限的名称,然后在ON关键
Ø GRANT SELECT,INSERT(CUSTOMER_ID,CUSTOMER_name), UPDATE(desc) ON CUSTOMER TO chenqian WITH GRANT
OPTION;
l 在授予对象权限时,可以使用一次关键字ALL或ALL PRIVILEGES将某个对象的所有对象权限全部授予指定的用 户。
ELSE DBMS_OUTPUT.PUT_LINE(‘已插入记录');
END IF; END; /
触发器和权限管理
6
l 触发器的类型有:
触发器类型
触发器类型-1
模式(DDL) 触发器
数据库级 触发器
DML 触发器
行级触发器 语句级触发器 INSTEAD OF触发器
触发器和权限管理
7
DDL 触发器
更新
Oracle
表
激保活存更新 触发器
数据库
激活 保存更新
触发器
Oracle 数据库
触发器和权限管理
5
创建触发器
CREATE OR REPLACE TRIGGER aiu_itemfile AFTER INSERT ON itemfile FOR EACH ROW BEGIN
IF (:NEW.qty_hand = 0) THEN DBMS_OUTPUT.PUT_LINE('警告:已插入记录,但数量为零');
《数据库管理与应用(SQL Server)》课程标准

《数据库管理与应用(《数据库管理与应用(SQL SQL Server Server))》课程标准课程代码KC03课程性质专业基础课建议学时46适用专业软件技术及相关专业建议教学方式“教、学、做”一体化制定单位学校制定日期2012.7.9审核部门软件技术专业资源库建设项目组企业一、课程定位本课程是软件技术专业的一门实践性很强的专业基础课。
培养学生数据库的开发、管理和维护能力,为从事数据库应用开发、系统管理和维护奠定基础。
前导课程:《C 语言程序设计》后续课程:《Java Web 程序设计》、《C#程序设计》、《 程序设计》二、课程目标通过本课程的学习,使学生了解大型数据库的基本概念,能创建和管理数据库及其对象,掌握数据库程序设计的基本思想和方法,培养学生对SQL Server 数据库进行日常管理与维护的技能,为数据库的开发、应用与维护打下基础。
㈠知识目标1.了解SQL Server 的基本概念和结构;2.掌握数据库设计基本知识;3.掌握解数据库及其对象的创建方法;4.掌握Transact-SQL 语言的编程知识;5.掌握数据库日常维护和管理方法;6.掌握基本的数据库综合应用开发的方法。
㈡能力目标1.能安装和配置SQL Server 数据库管理系统;2.具有设计符合规范的数据库的能力;3.能熟练创建和管理数据库及数据库对象,并实施数据完整性;4.具备良好的数据库编程能力;5.具备数据库日常维护、管理及程序的纠错能力;6.具备基本的数据库综合应用开发能力。
㈢素质目标1.具有规范的编程风格和习惯;2.具有良好的分析问题和解决问题的能力以及技术文档写作、沟通和团队协作能力;3.具有科学、严谨的工作态度,良好的敬业精神和创新精神;4.培养学生自主学习的能力,具有终身学习的精神和和可持续发展能力。
㈣其它目标通过课程学习,为以下职业技能证书的考试打下良好基础。
1.微软MCDBA;2.微软认证技术专家MCTS(SQL Server)。
db2 triggers用法

db2 triggers用法DB2 Triggers用法DB2是一种关系型数据库管理系统,广泛应用于企业和大型组织中。
为了满足不同的业务需求和数据处理要求,DB2提供了多种功能和特性,其中包括Triggers(触发器)。
本文将详细介绍DB2 Triggers的使用方法,以帮助读者更好地了解和应用这一特性。
1. 什么是Trigger?Trigger即触发器,是一种与数据库表相关的特殊类型的存储过程。
它与表中的数据操作(插入、更新、删除)相关联,当满足特定的条件时,触发器可以自动执行一个预定义的操作。
通过使用触发器,可以在数据操作前后执行自定义的逻辑或额外的数据处理操作。
2. Trigger的类型DB2 Triggers主要分为三种类型:Before Triggers(前置触发器)、After Triggers(后置触发器)和Instead of Triggers(代替触发器)。
- Before Triggers:在数据操作之前触发,常用于数据检查、约束验证等操作。
如果触发器的逻辑返回FALSE,则数据操作将被取消。
- After Triggers:在数据操作之后触发,常用于自定义日志记录、数据同步等操作。
与Before Triggers不同,After Triggers不会影响原始的数据操作。
- Instead of Triggers:在数据操作之前触发,且可以代替原始的数据操作。
常用于对视图进行插入、更新和删除操作,使其具有与表相同的行为。
3. 创建Trigger要创建Trigger,需要使用CREATE TRIGGER语句,并指定触发器的名称、关联的表名、触发器的类型、触发事件(INSERT、UPDATE、DELETE)和触发时机(BEFORE或AFTER)。
另外,还需要定义触发器执行的逻辑。
下面是一个创建Before Triggers的示例:sqlCREATE TRIGGER myTriggerBEFORE INSERT ON myTableFOR EACH ROWBEGIN触发器的逻辑处理END4. Trigger中的逻辑处理在Trigger中,可以使用SQL语句、流程控制语句和特定的Trigger变量来实现逻辑处理。
数据库触发器的性能影响和使用技巧

数据库触发器的性能影响和使用技巧数据库触发器是一种在数据库中定义的特殊类型对象,它通常与表相关联,并且在表上的某些操作发生时自动触发执行一段存储过程或脚本。
触发器在数据库中的使用非常普遍,但同时也对性能产生一定的影响。
本文将探讨数据库触发器的性能影响和一些使用技巧,以帮助开发人员更好地利用和管理触发器。
首先,我们将讨论数据库触发器对性能的影响。
触发器的执行通常会增加数据库操作的开销,因为每次触发操作时都会引发相关的触发器执行。
这可能导致一些性能问题,特别是在多并发操作的情况下。
因此,我们在使用和设计触发器时需要注意以下几点来减少性能影响:1. 选择合适的时机和操作:只有在必要时才使用触发器,并且避免在频繁和复杂的操作上使用触发器。
触发器通常在插入、更新、删除等操作之后执行,因此确保触发器的执行逻辑简单明了并且仅在必要时触发。
2. 确保触发器逻辑的高效性:触发器的逻辑应尽可能简洁和高效,避免使用复杂的查询和操作。
大型和复杂的触发器可能导致执行延迟和性能下降。
建议使用存储过程等方式将复杂操作封装起来,而不是在触发器中直接执行。
3. 合理地定义触发器范围:只在必要的表和列上定义触发器,避免过多的触发器定义以及过多的触发操作。
不必要的触发器可能增加了数据库的开销,并且可能导致触发器之间的冲突和不一致。
4. 索引的使用:触发器通常会对表进行操作,因此在触发器涉及到的列上创建适当的索引是提高性能的有效方式。
索引能够加快查询速度和减少资源开销,同时还可以优化触发器的执行效率。
除了避免性能问题外,下面是一些使用触发器的技巧,可以提高数据库的效率和管理触发器的复杂性:1. 记录和监视触发器的行为:在使用触发器之前,我们需要先对触发器进行测试并监视它的执行行为。
触发器可能在不同的情况下产生不同的结果,因此需要进行全面的测试和监控来确保触发器在所期望的情况下正常工作。
2. 定期维护和更新触发器:触发器是数据库中重要的组成部分,因此需要定期进行维护和更新。
navicat触发器delete用法

一、导言在数据库管理中,触发器是一种可以在特定事件发生时自动执行的数据库对象。
它可以用于实现自动化的数据库操作,提高数据库的性能和安全性。
Navicat是一款功能强大的数据库管理工具,支持多种数据库管理系统,包括MySQL、SQL Server、Oracle等。
在Navicat中,触发器的使用非常方便,可以通过图形化界面创建和管理触发器,实现数据库操作的自动化。
本文将重点介绍Navicat中触发器的delete用法,帮助读者更好地理解和使用触发器。
二、触发器概述1. 触发器的定义和作用触发器是一种数据库对象,它可以在数据库的特定事件发生时自动执行一系列SQL语句。
这些特定事件包括插入、更新、删除等操作,当这些操作发生时,触发器会自动执行相应的SQL语句,实现数据库操作的自动化。
触发器通常被用于实现数据的约束、业务逻辑的处理、日志记录等功能。
2. 触发器的类型在数据库管理中,触发器通常分为三种类型:插入触发器(BEFORE INSERT、AFTER INSERT)、更新触发器(BEFORE UPDATE、AFTER UPDATE)和删除触发器(BEFORE DELETE、AFTER DELETE)。
不同类型的触发器可以在不同的数据库操作发生时触发执行,实现不同的功能。
三、Navicat中触发器的使用1. 创建触发器在Navicat中,可以通过图形化界面创建触发器。
首先要打开Navicat,连接到指定的数据库,然后在左侧的对象资源管理器中选择要创建触发器的表。
右键点击该表,选择“设计表”,在弹出的表设计窗口中选择“触发器”选项卡,点击“添加”按钮即可创建一个新的触发器。
在创建触发器时,需要设置触发器的名称、事件类型(BEFORE DELETE)、触发时机(BEFORE)、触发条件等信息。
最后在“触发的SQL”区域输入要触发执行的SQL语句,点击“保存”按钮即可完成触发器的创建。
2. 管理触发器在Navicat中,可以方便地管理已经创建的触发器。
简单使用触发器SQL触发器的使用及语法

简单使用触发器SQL触发器的使用及语法SQL触发器是一种特殊类型的存储过程,它是在数据库中一些特定的操作发生时自动执行的。
触发器可以用于在数据被插入、更新或删除时执行一系列的操作。
本文将详细介绍SQL触发器的使用和语法。
1.触发器的类型:SQL触发器可以分为三种类型:插入触发器(INSERT trigger)、更新触发器(UPDATE trigger)和删除触发器(DELETE trigger)。
根据业务需求选择相应的触发器类型。
2.创建触发器:创建触发器需要使用CREATETRIGGER语句。
语法如下:CREATE TRIGGER <trigger_name>{BEFORE,AFTER,INSTEADOF}{INSERT,UPDATE,DELETE}[ON <table_name>][FOREACHROW][WHEN (<condition>)]BEGIN--触发器执行的操作END;其中,trigger_name是触发器的名称;BEFORE / AFTER / INSTEAD OF表示触发器在所指定操作之前、之后或者代替进行;INSERT / UPDATE/ DELETE表示触发器响应的操作类型;table_name是触发器所绑定的表名;FOR EACH ROW表示该触发器对每一行数据都执行;condition是触发器的条件。
3.触发器执行的操作:在触发器的BEGIN和END之间,可以进行一系列的操作,如执行SQL 语句、调用存储过程等。
可以根据业务需求在触发器中编写逻辑代码来满足需求。
4.触发器的应用场景:-数据完整性:可以使用触发器在插入、更新或删除数据时进行一些验证,确保数据的完整性。
例如,在插入新用户之前,可以在触发器中检查用户的必填字段是否为空。
-数据同步:可以使用触发器在数据更新时自动更新其他相关表中的数据,确保数据的同步。
例如,在更新订单信息时,可以在触发器中更新库存表中的相应数据。
navicat premium 触发器语法
navicat premium 触发器语法摘要:1.Navicat Premium 触发器概述2.创建触发器的步骤3.触发器应用场景及示例4.注意事项正文:Navicat Premium 是一款强大的数据库管理工具,可以方便地管理和操作各种类型的数据库。
触发器是数据库中一种重要的对象,用于在特定事件发生时自动执行某些操作。
本文将介绍如何在Navicat Premium 中创建和使用触发器,以及一些常用的应用场景。
一、Navicat Premium 触发器概述触发器是一种数据库对象,它可以监控表或其他数据库对象的事件,并在特定事件发生时自动执行预先定义的操作。
在Navicat Premium 中,触发器可以用于实现数据的一致性、完整性检查以及复杂的业务逻辑。
触发器与存储过程、函数等一起,为数据库管理员和开发人员提供了强大的业务规则实现能力。
二、创建触发器的步骤1.打开Navicat Premium,点击“连接”并选择您正在使用的数据库。
2.在弹出的连接窗口中输入连接信息,点击“确定”建立连接。
3.右键点击连接名列表中的数据库,选择“打开连接”。
4.在左侧列出的事件中,找到“触发器”并双击打开。
5.在触发器列表中,点击“新建”按钮创建一个新的触发器。
6.填写触发器的基本信息,如名称、类型、表名等。
7.设置触发事件的类型,如INSERT、UPDATE、DELETE 等。
8.编写触发器要执行的操作,如更新其他表、插入数据等。
9.测试触发器,确保其功能正确无误。
10.点击“保存”按钮,完成触发器的创建。
三、触发器应用场景及示例1.数据一致性:当一个表的数据发生变化时,自动同步更新另一个表的数据。
例如,当员工表中的信息发生变化时,触发器可以自动更新部门表中的相应信息。
2.数据完整性:在插入或更新数据时,触发器可以执行一些检查,确保数据的准确性。
例如,在用户表中插入数据时,触发器可以检查用户年龄是否大于等于18岁。
数据库触发器的创建和使用总结
数据库触发器的创建和使用总结数据库触发器是一种在数据库管理系统中使用的特殊对象,它可以在特定的数据库操作发生时自动执行一系列的操作。
触发器可以用于实现数据的完整性约束、应用业务规则、监控数据库操作等功能。
创建数据库触发器需要以下几个步骤:1. 定义触发器的类型:触发器可以在 INSERT、UPDATE 或 DELETE 操作发生前或发生后执行操作。
根据需要选择合适的类型。
2. 指定触发器的事件:选择触发器对应的数据库表,并指定触发器所监控的事件,如 INSERT、UPDATE 或 DELETE。
3. 编写触发器的触发条件:定义触发器执行的条件,可以使用 SQL 表达式或逻辑判断语句来指定触发条件。
4. 编写触发器的操作:定义触发器触发后要执行的操作,可以是单个 SQL 语句或多个 SQL 语句的组合。
5. 创建触发器:使用数据库管理系统提供的 CREATE TRIGGER 语句来创建触发器。
使用数据库触发器可以实现以下功能:1. 强制实施数据完整性约束:通过在 INSERT、UPDATE 或 DELETE 操作前执行触发器,可以对数据进行验证和修正,确保数据的完整性和一致性。
2. 应用业务规则:触发器可以根据特定的业务规则执行相关操作,如在插入新记录时自动生成一个唯一标识符。
3. 监控和审计数据库操作:通过触发器,可以记录数据库操作的详细信息,包括操作时间、操作用户等,以便进行监控和审计。
4. 实现数据复制和同步:触发器可以用于实现数据的复制和同步,当一个表的数据发生变化时,触发器可以自动将变化应用到其他表。
然而,使用触发器也需要注意一些问题:1. 触发器的执行效率:触发器会在数据库操作发生时自动执行,如果触发器的操作较为复杂,可能会对数据库的性能产生影响。
2. 触发器的递归执行:触发器的执行可能会引起其他触发器的执行,如果触发器之间存在递归调用,可能会导致死循环。
3. 触发器的管理和维护:数据库中存在大量的触发器时,触发器的管理和维护可能会变得复杂,需要注意触发器的命名和组织结构。
利用Windows CMD命令创建和管理任务计划
利用Windows CMD命令创建和管理任务计划计算机的普及使得人们的生活变得更加便捷和高效。
在日常使用计算机的过程中,我们经常会遇到一些需要定时执行的任务,比如定期备份文件、定时清理垃圾文件等。
为了实现这些任务的自动化,Windows系统提供了任务计划功能,而利用CMD命令可以更加灵活地创建和管理任务计划。
一、任务计划的基本概念任务计划是一种在指定时间或事件触发时自动执行任务的功能。
它可以帮助我们在不需要人工干预的情况下完成一些重复性的工作。
任务计划的核心是计划任务,它由一系列的操作组成,可以包括运行程序、发送电子邮件、执行脚本等。
二、创建任务计划1. 打开CMD命令行窗口,输入"taskschd.msc"命令,打开任务计划程序。
2. 在任务计划程序中,选择“创建基本任务”或“创建任务”选项,根据需要进行设置。
3. 在“触发器”选项中,可以选择任务的触发方式,比如按照特定的时间间隔、在特定日期执行等。
4. 在“操作”选项中,可以设置任务的具体操作,比如运行某个程序、执行某个脚本等。
5. 在“条件”选项中,可以设置任务的执行条件,比如只有在计算机空闲时才执行等。
6. 在“设置”选项中,可以设置任务的其他属性,比如任务的优先级、是否隐藏任务窗口等。
7. 完成设置后,点击“确定”按钮即可创建任务计划。
三、管理任务计划1. 打开CMD命令行窗口,输入"taskschd.msc"命令,打开任务计划程序。
2. 在任务计划程序中,选择“任务计划库”选项,可以查看已经创建的任务计划。
3. 可以通过右键点击任务计划,选择“运行”来手动执行任务。
4. 可以通过右键点击任务计划,选择“禁用”或“启用”来控制任务的执行状态。
5. 可以通过右键点击任务计划,选择“编辑”来修改任务的属性和设置。
6. 可以通过右键点击任务计划,选择“删除”来删除任务。
四、CMD命令管理任务计划的优势利用CMD命令创建和管理任务计划具有以下优势:1. 灵活性:CMD命令可以通过脚本的方式批量创建和管理任务计划,更加灵活方便。
触发器及其应用实验总结
触发器及其应用实验总结
触发器是数据库管理系统中的一种特殊类型的存储过程,它能够在数据库中自动执行特定的操作,例如在对表进行插入、更新或删除操作时触发某些事件。
触发器在数据库管理中起到了非常重要的作用,可以用于实现数据的完整性约束、数据的自动更新等功能。
在数据库应用中,触发器被广泛应用于各种场景,如审计日志记录、数据验证、数据同步等。
在实验中,我们首先创建了一个简单的数据库表,包含了员工的姓名、工号、部门和工资信息。
然后我们编写了一个触发器,当向这个表中插入新的记录时,触发器会自动计算出员工的年薪,并将其更新到表中。
这样就实现了在数据库中自动计算员工年薪的功能,提高了数据的准确性和完整性。
除了上面的例子,触发器还可以应用于很多其他场景。
例如,在一个银行系统中,可以通过触发器实现当用户转账时自动更新账户余额;在一个电商系统中,可以通过触发器实现当订单状态改变时自动发送邮件通知用户等。
触发器的应用不仅提高了数据库管理的效率,还可以减少人为操作带来的错误。
然而,在使用触发器时,也需要注意一些问题。
首先是触发器的性能问题,过多复杂的触发器可能会影响数据库的性能;其次是触发器的逻辑问题,需要确保触发器的逻辑正确,不会导致
数据错误或不一致。
总的来说,触发器是数据库管理中一个非常有用的工具,可以帮助我们实现很多自动化的功能。
在实际应用中,我们需要根据具体的业务需求来设计和使用触发器,合理地利用触发器可以提高数据库管理的效率和数据的准确性。
希望通过本次实验的总结,读者能够对触发器及其应用有更深入的理解,为实际工作中的数据库管理提供参考和帮助。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验——图书馆日常事务管理系统触发器的创建和管理
1.创建触发器
(1)使用SSMS建触发器
在TSJYMS数据库的图书类别表上创建一个名为tslb_insert_trigger的触发器,当执行INSERT操作时,该触发器被触发,禁止插入记录。
CREA TE TRIGGER tslb_insert_trigger ON图书类别
FOR INSERT
AS
BEGIN
PRINT('禁止插入记录!')
ROLLBACK TRANSACTION
END
(2)使用T-SQL语句创建触发器
①在TSJYMS数据库的图书明细表上创建一个名为ts_delete_trigger的触发器,当执行DELETE操作时,该触发器被触发,禁止删除记录。
CREA TE TRIGGER ts_delete_trigger ON图书明细表
FOR DELETE
AS
BEGIN
PRINT('禁止删除记录!')
ROLLBACK TRANSACTION
END
②在TSJYMS数据库的借还明细表上创建一个名为jhmx_update_trigger的触发器,当执行UPDARE操作时,该触发器被触发,不允许修改表中的图书编号。
CREA TE TRIGGER jhmx_update_trigger ON借还明细表
INSTEAD OF UPDA TE
AS
IF UPDA TE(图书编号)
PRINT('禁止删除记录!')
2)多表级联更改触发器的创建
①在TSJYMS数据库的读者信息表上创建一个名为dzxx_insert_trigger的触发器,当在读者信息表中插入记录时,将该记录中的借书证号自动插入借还明细表中。
CREA TE TRIGGER dzxx_insert_trigger ON读者信息
FOR INSERT
AS
DECLARE@NUM CHAR(20)
SELECT@NUM=借书证号
FROM INSERTED
INSERT借还明细表(借书证号)
VALUES(@NUM)
②在TSJYMS数据库的图书明细表上创建一个名称为tsmx_update_trigger触发器,当
修改图书明细表中的图书编号时,如果借还明细表中引用了该图书编号,则禁止修改,并提示“不能修改!”
CREA TE TRIGGER tsmx_update_trigger ON图书明细表
FOR UPDA TE
AS
IF UPDA TE(图书编号)
BEGIN
DECLARE@BIANHAO CHAR(20)
SELECT@BIANHAO=DELETED.图书编号
FROM DELETED
IF EXISTS(SELECT图书编号FROM借还明细表WHERE图书编号=@BIANHAO) BEGIN PRINT('用户不能修改!')
ROLLBACK TRANSACTION
END
ELSE
PRINT('修改完成!')
END
3)触发器功能验证
对所创建的各种触发器进行功能验证,检查其设计的正确性。
①tslb_insert_trigger
验证代码:INSERT图书类别
V ALUES('3333','3333')
②ts_delete_trigger
验证代码:DELETE图书明细表
WHERE图书名称='文化苦旅
'③jhmx_update_trigger
验证代码:UPDA TE借还明细表
SET图书编号='12121212'
WHERE图书编号='29307142'
④dzxx_insert_trigger
验证代码:INSERT读者信息(借书证号,姓名,性别)
V ALUES('0312111002','张娜','女')
⑤tsmx_update_trigger
验证代码:UPDA TE图书明细表
SET图书编号='12121212'
WHERE图书编号='99011818'
4)查看触发器
①通过SSMS查看图书明细表上的触发器。
②使用系统存储过程sp_help、sp_helptext、sp_depends 查看读者信息表上的dzxx_insert_trigger触发器,使用sp_helptrigger查看图书明细表上的所有触发器类型。
EXEC sp_help dzxx_insert_trigger
EXEC sp_helptext dzxx_insert_trigger
EXEC sp_depends dzxx_insert_trigger
EXEC sp_helptrigger图书明细表
5)修改触发器
修改TSJYMS数据库中图书类别表上建立的tslb_insert_trigger的触发器,当执行INSERT、UPDATE操作时,该触发器被触发,自动发出报警信息“禁止插入和修改!”。
ALTER TRIGGER tslb_insert_trigger ON图书类别
FOR INSERT,UPDA TE
AS
BEGIN
PRINT('禁止插入和修改!')
ROLLBACK TRANSACTION
END6)触发器的禁止或启用
禁止或启用TSJYMS数据库中借还明细表上创建的jhmx_update_trigger的触发器。
ALTER TABLE借还明细表DISABLE TRIGGER jhmx_update_trigger
ALTER TABLE借还明细表ENABLE TRIGGER jhmx_update_trigger
7)删除触发器
(1)使用SSMS删除
删除图书类别表上的触发器。
表,触发器,右击,删除
(2)使用T-SQL语句删除
使用T-SQL语句删除图书明细表上的所有触发器。
DROP TRIGGER tsmx_update_trigger
SQL Server 用户定义函数的创建。
(1)创建一个自定义函数age(),根据某读者的出生日期返回该读者的年龄。
CREATE FUNCTION AGE(@BIRTH DATETIME)
RETURNS TABLE
AS
RETURN (SELECT YEAR(GETDATE())-YEAR(出生日期)AS年龄FROM读者信息WHERE 出生日期=@BIRTH)
调用:SELECT*FROM AGE('1989-08-18')
(2)创建一个自定义函数book_info(),根据图书编号返回该书的书名、出版社和库存数。
CREATE FUNCTION BOOK_INFO(@BIAOHAO CHAR(10))
RETURNS TABLE
AS
RETURN(SELECT图书名称,出版社,库存数FROM图书明细表
WHERE图书编号=@BIANHAO)
调用:SELECT*FROM BOOK_INFO('00000746')
(3) 创建一个自定义函数read_info(),根据借书证号返回该读者借书的情况。
CREATE FUNCTION read_info(@NUM CHAR(10))
RETURNS TABLE
AS
RETURN(SELECT*FROM图书借阅明细表
W HERE图书编号=@num)
调用:SELECT*fFROM read_info('29307142 ')
(3)修改自定义函数age(),根据某读者的借书证号返回该读者的年龄。
ALTER FUNCTION AGE(@NUM INT)
RETURNS TABLE
AS
RETURN (SELECT YEAR(GETDATE())-YEAR(出生日期)AS年龄FROM读者信息WHERE 借书证号=@NUM)
调用:SELECT*FROM AGE('00000746')
(5)删除自定义函数age()
DROP FUNCTION age。