生气通天论课件

上传人:壹****1 文档编号:570981488 上传时间:2024-08-07 格式:PPT 页数:76 大小:1.82MB
返回 下载 相关 举报
生气通天论课件_第1页
第1页 / 共76页
生气通天论课件_第2页
第2页 / 共76页
生气通天论课件_第3页
第3页 / 共76页
生气通天论课件_第4页
第4页 / 共76页
生气通天论课件_第5页
第5页 / 共76页
点击查看更多>>
资源描述

《生气通天论课件》由会员分享,可在线阅读,更多相关《生气通天论课件(76页珍藏版)》请在金锄头文库上搜索。

1、生气通天论生气通天论【题解】【题解】生气,生命之气,包括阴精和阳气。生气,生命之气,包括阴精和阳气。生生气气通通天天,通通,通通应应; 天天,自自然然界界指指人人体体阴阴阳阳之之气气与与自自然然界界阴阴阳阳之之气气互互相通应。相通应。 2主要内容:主要内容:1论述了阳气对人身的重要性论述了阳气对人身的重要性2论述了阳气的各种病理论述了阳气的各种病理3阐阐述述阳阳气气与与阴阴精精的的关关系系及及阴阴阳阳不不和和的的病病理。理。3 “天之大宝,只此一丸红日;天之大宝,只此一丸红日;人之大宝,只此一息真阳人之大宝,只此一息真阳. .” 类经附翼大宝论 7阳气随昼夜阴阳消长而变化阳气随昼夜阴阳消长而变

2、化 故故阳阳气气者者,一一日日而而主主外外,平平旦旦人人气气生生,日日中中而而阳阳气气隆隆,日日西西而而阳阳气气已已虚虚,气气门门乃闭。乃闭。 是是故故暮暮而而收收拒拒,无无扰筋筋骨骨,无无见见雾雾露露,反此三时,形乃困薄。反此三时,形乃困薄。 旦慧、昼安、夕加、夜甚旦慧、昼安、夕加、夜甚 灵枢顺气一日分为四时8三、阳气的病理三、阳气的病理 (一一) 受四时邪气而发病受四时邪气而发病不断感受四季邪气不断感受四季邪气,阳气衰竭。阳气衰竭。9因于寒因于寒病机:卫阳被遏,腠理闭塞病机:卫阳被遏,腠理闭塞症状:体若燔炭,无汗症状:体若燔炭,无汗趋势:汗出而热散趋势:汗出而热散提示:用发散法提示:用发散

3、法10因于暑因于暑实证病机:暑邪迫汗外泄,暑热扰动心神。实证病机:暑邪迫汗外泄,暑热扰动心神。症症 状:多汗,烦躁不安,呼吸喘粗状:多汗,烦躁不安,呼吸喘粗虚证病机:暑邪迫汗外泄,耗气伤阴,心神失养。虚证病机:暑邪迫汗外泄,耗气伤阴,心神失养。症症 状:多汗,神昏嗜卧,喃喃自语状:多汗,神昏嗜卧,喃喃自语 ( “ “虚虚则郑声则郑声” )11因于湿因于湿病机:湿蒙清阳,郁而化热,留恋筋脉病机:湿蒙清阳,郁而化热,留恋筋脉 症状:首如裹,筋脉拘挛(四肢僵硬)症状:首如裹,筋脉拘挛(四肢僵硬) 或筋脉松弛(四肢痿软)或筋脉松弛(四肢痿软)12因于风气因于风气病机:风邪伤阳,阻遏津液气化病机:风邪伤

4、阳,阻遏津液气化症状:肿(水肿)症状:肿(水肿)13( (二二) )、阳气功能失常所引起的、阳气功能失常所引起的多种证及其病机多种证及其病机 14阳气者,烦劳则阳气者,烦劳则张张,精绝,精绝,辟积辟积串讲串讲于夏,使人煎厥。目盲不可以视,于夏,使人煎厥。目盲不可以视,耳闭不可以听,溃溃乎若坏都,耳闭不可以听,溃溃乎若坏都,汩汩乎不可止。汩汩乎不可止。151.1.阳亢精绝阳亢精绝 临床表现:突然昏厥,或耳闭、目盲。临床表现:突然昏厥,或耳闭、目盲。 来势骤急,类似于今之中暑。来势骤急,类似于今之中暑。病因:平素烦劳过度。病因:平素烦劳过度。病机:阳亢阴亏,复加暑热煎灼,病机:阳亢阴亏,复加暑热煎

5、灼, 致阴精衰惫,发生突然昏厥,致阴精衰惫,发生突然昏厥, 分析分析 16阳气者,大怒则形气绝,而血菀阳气者,大怒则形气绝,而血菀于上,使人薄厥。有伤于筋,纵,于上,使人薄厥。有伤于筋,纵,其若不容。其若不容。串讲串讲注释:菀,通郁;容,通用。注释:菀,通郁;容,通用。172.2.阳气厥逆阳气厥逆病病 因:由大怒等情致过激。因:由大怒等情致过激。病病 机:怒则气上,血随气升,气血上迫郁于头机:怒则气上,血随气升,气血上迫郁于头 面部出现突然昏厥。面部出现突然昏厥。临床表现:除昏厥外,可见筋脉弛纵不收。临床表现:除昏厥外,可见筋脉弛纵不收。预预 后后:有有伤伤于于筋筋,手手足足驰驰纵纵,不不能能

6、为为己己所所用用(瘫痪)。(瘫痪)。类似于现代中风。类似于现代中风。分析分析18汗出偏沮,使人偏枯。汗出偏沮,使人偏枯。串讲串讲注释:沮,通阻。注释:沮,通阻。193.3.阳气偏阻阳气偏阻病病 机:阳气(卫阳)不足,偏阻一侧,机:阳气(卫阳)不足,偏阻一侧, 不能温运全身。不能温运全身。分析分析临床表现:局部汗出,有可能出现局部肢体临床表现:局部汗出,有可能出现局部肢体 枯萎不用的病症。枯萎不用的病症。 20汗出见湿,乃生痤疿。劳汗当风,汗出见湿,乃生痤疿。劳汗当风,寒薄为皶,郁乃痤。寒薄为皶,郁乃痤。串讲串讲注释:痤、疿、皶,皆皮肤病。注释:痤、疿、皶,皆皮肤病。214.4.阳气郁遏阳气郁遏

7、病病 因:汗出见湿(可泛指汗出感受外邪)。因:汗出见湿(可泛指汗出感受外邪)。病病 机:阳气受水湿之气郁遏,宣泄不畅,机:阳气受水湿之气郁遏,宣泄不畅, 或形劳汗出,坐卧当风,迫聚于皮腠,或形劳汗出,坐卧当风,迫聚于皮腠, 郁而化热。郁而化热。临床表现:易生疖子、痱子、疮疖、粉刺。临床表现:易生疖子、痱子、疮疖、粉刺。分析分析22 高梁之变,高梁之变,足足生大丁,受如持虚。生大丁,受如持虚。注:高,同膏;梁,同粱。注:高,同膏;梁,同粱。串讲串讲235.5.阳热内盛阳热内盛病病 因:嗜食膏粱厚味。因:嗜食膏粱厚味。病病 机:肥者令人内热,阳热蓄积,机:肥者令人内热,阳热蓄积, 腐肉酿脓。腐肉酿

8、脓。临床表现:生大的疮疡。临床表现:生大的疮疡。趋趋 势:极易患此类病症。势:极易患此类病症。提提 示:糖尿病患者易生疮疡。示:糖尿病患者易生疮疡。分析分析246阳气开合不得,邪气留恋阳气开合不得,邪气留恋 -变证变证分析分析(1)大偻:为邪入筋大偻:为邪入筋 (2)陷脉为瘘:为邪入脉中陷脉为瘘:为邪入脉中 (3)善畏惊骇:为邪入脏腑善畏惊骇:为邪入脏腑 (4)痈肿:为邪入肉里痈肿:为邪入肉里 (5)风疟:为邪入俞穴风疟:为邪入俞穴 (6)魄汗:久病致虚魄汗:久病致虚257 阳气挡隔阳气挡隔-上下不并,阳上下不并,阳 气不通气不通“气有余便是火气有余便是火” 。分析分析26从病因而言从病因而言

9、 劳倦过度之烦劳劳倦过度之烦劳 情志过极之大怒情志过极之大怒 饮食不节之高粱之变饮食不节之高粱之变 外邪的侵袭外邪的侵袭人体阳气人体阳气的病理的病理小结小结27从病机而言(从病机而言(7 7点)点) 阳亢精绝 阳气厥逆 阳气偏阻 阳气郁遏 阳热内盛 阳虚邪恋 阳气挡隔28四四 阴阳关系阴阳关系29起,里。亟,极。形容阴精频繁地响应阳气的需求。30(一)阴精与阳气的关系(一)阴精与阳气的关系 相互为用,相互依存:相互为用,相互依存: “ “阴者藏精而起亟也,阳者卫外而为固也。阴者藏精而起亟也,阳者卫外而为固也。” 互相制约:互相制约: “ “阴不胜其阳,则脉流薄疾,并乃狂;阳不阴不胜其阳,则脉流

10、薄疾,并乃狂;阳不胜其阴,则五藏气争,九窍不通。胜其阴,则五藏气争,九窍不通。” 阴平阳秘,精神乃治阴平阳秘,精神乃治 老子说:老子说:“万物负阴而抱阳,冲气以为和。万物负阴而抱阳,冲气以为和。” 阴阳之要,阳密乃固阴阳之要,阳密乃固 31(二)阴阳失和的病理变化(二)阴阳失和的病理变化 32 寒寒 (三)(三)“四时之气,更伤五藏四时之气,更伤五藏”感而即发感而即发( (冬病冬病) ):因于寒,体若燔炭,:因于寒,体若燔炭,汗出而散。汗出而散。留连后发留连后发( (春病春病) ):冬伤于寒,春必温:冬伤于寒,春必温病。病。33暑暑 感感而而即即发发( (暑暑病病) ):因因于于暑暑,汗汗,烦

11、烦则喘喝,静则多言。则喘喝,静则多言。暑暑伏伏而而后后发发( (秋秋病病) ):夏夏伤伤于于暑暑,秋秋为为HAIHAI疟。疟。 34 湿湿 感而即发感而即发( (秋病秋病) ):因于湿,首如裹,湿热:因于湿,首如裹,湿热不攘,大筋緛短,小筋弛长,緛短为拘,不攘,大筋緛短,小筋弛长,緛短为拘,弛长为痿。弛长为痿。湿湿伏伏而而后后发发( (冬冬病病) ):秋秋伤伤于于湿湿,上上逆逆而而咳咳,发为痿厥。发为痿厥。35 风风 感而即发感而即发( (春病春病) ):因于气为肿;因于露风,乃:因于气为肿;因于露风,乃生寒热。生寒热。风伏而后发风伏而后发( (夏病夏病) ):春伤于风,邪气:春伤于风,邪气留

12、连,乃为洞泄。留连,乃为洞泄。36 小结1.1.外感时邪,不仅可以感而即发,伤害本外感时邪,不仅可以感而即发,伤害本脏;也可以伏而后发,损害他脏。脏;也可以伏而后发,损害他脏。 2.2.某些疾病的发生具有季节性特点。某些疾病的发生具有季节性特点。 37五、五、 饮食太过损伤五脏精气饮食太过损伤五脏精气 饮饮食食五五味味是是人人赖赖以以生生存存的的基基本本条条件件,是是五脏精气之本源。五脏精气之本源。但但若若饮饮食食太太过过,也也可可成成为为损损伤伤五五脏脏精精气气的重要原因的重要原因。38 夫夫 五五 味味 入入 胃胃 , 各各 歸歸 所所 喜喜 , 故故 酸酸 先先入入肝肝,苦苦先先入入心心

13、,肝肝先先入入脾脾,辛辛先入肺,咸先入腎。先入肺,咸先入腎。 久而增氣,物化之常也,氣增而久而增氣,物化之常也,氣增而久,夭之由也。久,夭之由也。 - - 至真要大論至真要大論39So much for thisSo much for this40形容势盛。形容势盛。41辟,襞也。辟,襞也。 辟积,即衣服辟积,即衣服的褶子。引申的褶子。引申为重复。为重复。42足足足,足以。足,足以。足,脚。足,脚。43第十三章第十三章 存储过程、用户自定存储过程、用户自定义函数与触发器义函数与触发器计算中心计算中心本章内容本章内容13.1 13.1 存储过程概述存储过程概述13.2 13.2 通过企业管理器创

14、建、修改和删除存通过企业管理器创建、修改和删除存储过程储过程13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递13.4 13.4 用户自定义函数用户自定义函数13.5 13.5 触发器及其作用、效果演示触发器及其作用、效果演示13.1 13.1 存储过程概述存储过程概述l存储过程(存储过程(Stored Procedure)l是什么?是什么?l l简单的说:简单的说:简单的说:简单的说:存储过程是将常用的或很复杂的工存储过程是将常用的或很复杂的工作,预先用作,预先用T-SQL语句写好并用一个指定的名语句写好并用一个指定的名称存储起来的语句集合。称存储起来的语句集合。l l课本

15、的定义:课本的定义:课本的定义:课本的定义:是是SQL Server服务器上一组服务器上一组预编预编预编预编译译译译的的T-SQL语句,用于完成某项任务,它可以语句,用于完成某项任务,它可以接受参数、返回状态值和参数值,并且可以嵌接受参数、返回状态值和参数值,并且可以嵌套调用。套调用。l l举例举例举例举例13.1 13.1 存储过程概述存储过程概述l为什么要使用存储过程?为什么要使用存储过程?l存储过程在创建时即在服务器上进行编译,所存储过程在创建时即在服务器上进行编译,所以执行起来比以执行起来比SQLSQL语句语句快快快快,且能减少网络通信,且能减少网络通信的负担。的负担。l可以在单个存储

16、过程中执行一系列可以在单个存储过程中执行一系列SQLSQL语句,语句,完完完完成复杂的操作成复杂的操作成复杂的操作成复杂的操作。 l存储过程存储过程可以重复使用可以重复使用可以重复使用可以重复使用,减少数据库开发人员,减少数据库开发人员的工作量的工作量 。l l安全性高安全性高安全性高安全性高,可设定只有某些用户才具有对指定,可设定只有某些用户才具有对指定存储过程的使用权。存储过程的使用权。13.1 13.1 存储过程概述存储过程概述l存储过程的类型存储过程的类型l系统存储过程系统存储过程例如:例如:EXEC sp_helpdbl l用户定义存储过程:用户定义存储过程:由用户创建并能完成某由用

17、户创建并能完成某一特定功能的存储过程。一特定功能的存储过程。l临时存储过程临时存储过程l扩展存储过程扩展存储过程例如:例如:例如:例如:EXEC xp_cmdshell dir d:13.1 13.1 存储过程概述存储过程概述l存储过程的功能存储过程的功能(1)接收输入参数并以输出参数的形式为调用过接收输入参数并以输出参数的形式为调用过程或批处理返回多个值。程或批处理返回多个值。(2)包含执行数据库操作的编程语句,包括调用包含执行数据库操作的编程语句,包括调用其他过程。其他过程。(3)为调用过程或批处理返回一个状态值,以表为调用过程或批处理返回一个状态值,以表示成功或失败示成功或失败(及失败原

18、因及失败原因)。l存储过程特点存储过程特点13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程l创建存储过程的指导原则创建存储过程的指导原则l避免出现存储过程的拥有者和底层对象的拥有者不避免出现存储过程的拥有者和底层对象的拥有者不同的情况,建议由同的情况,建议由dbo用户用户拥有数据库中所有对象拥有数据库中所有对象l每个存储过程完成单个任务每个存储过程完成单个任务l命名本地存储过程的时候,避免使用命名本地存储过程的时候,避免使用“sp_”前缀前缀l尽量少使用临时存储过程,以避免频繁连接尽量少使用临时存储过程,以避免频繁连接 tempdb 里的系统表里的系统表l不要直接从不要直接

19、从 syscomments 系统表里删除项系统表里删除项13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程l创建存储过程创建存储过程(1) 启动企业管理器,登录到要使用的服务器。启动企业管理器,登录到要使用的服务器。(2) 选择要创建存储过程的数据库,在左窗格中单击选择要创建存储过程的数据库,在左窗格中单击“存储存储过程过程”文件夹,此时在右窗格中显式该数据库的所有文件夹,此时在右窗格中显式该数据库的所有存储过程,如图存储过程,如图13-1所示。所示。图图13-1 13-1 企业管理器中显示的存储过程信息企业管理器中显示的存储过程信息13.2 13.2 创建、修改和删除存储过

20、程创建、修改和删除存储过程(3) 右击右击“存储过程存储过程”文件夹,在弹出菜单中选择【新建存储文件夹,在弹出菜单中选择【新建存储过程】选项,打开创建存储过程对话框,如下图。过程】选项,打开创建存储过程对话框,如下图。图图13-2 13-2 创建存储过程对话框创建存储过程对话框13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程(4) 在在“文本文本”编辑框中输入存储过程正文。编辑框中输入存储过程正文。(5) 单击单击“检查语法检查语法”按钮,检查语法是否正确。按钮,检查语法是否正确。(6) 单击单击“确定确定”按钮,保存存储过程。按钮,保存存储过程。图图13-3 13-3 输

21、入存储过程内容输入存储过程内容输入内输入内容区域容区域提示:提示:提示:提示:新创建存储过新创建存储过程名字包含程名字包含在在CREATE CREATE PROCEDUREPROCEDURE语句语句中,不在保存中,不在保存时输入。时输入。13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程l修改存储过程修改存储过程(1) 在企业管理器中展开服务器组,再展开服务器。在企业管理器中展开服务器组,再展开服务器。(2) 展开展开“数据库数据库”文件夹,再展开要修改存储过程的数据库。文件夹,再展开要修改存储过程的数据库。(3) 在要修改的存储过程上右击,并在弹出的快捷菜单中选在要修改的存

22、储过程上右击,并在弹出的快捷菜单中选择择【属性】【属性】【属性】【属性】项,或项,或双击双击双击双击该存储过程,弹出该存储过程,弹出“存储过程属性存储过程属性”对话框。对话框。图图13-4 控制台目录控制台目录13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程l删除存储过程删除存储过程l类似于删除表操作,在存储过程显示列表中选择要删类似于删除表操作,在存储过程显示列表中选择要删除的存储过程(可以用除的存储过程(可以用ctrl或或shift选多个)。选多个)。l右键单击选中的存储过程,在弹出的快捷菜单中选择右键单击选中的存储过程,在弹出的快捷菜单中选择【删除】项,打开【删除】项

23、,打开“除去对象除去对象”对话框,如下图,单击对话框,如下图,单击【全部除去】按钮,完成删除。【全部除去】按钮,完成删除。图图13-5 “13-5 “除去对象除去对象”对话框对话框显示与该存显示与该存储过程相关储过程相关的对象的对象13.2 13.2 创建、修改和删除存储过程创建、修改和删除存储过程l创建存储过程时,需要确定存储过程的三创建存储过程时,需要确定存储过程的三个组成部分:个组成部分: l l参数参数参数参数,所有的输入参数以及传给调用者的输出,所有的输入参数以及传给调用者的输出参数。参数。 l l过程体过程体过程体过程体,被执行的针对数据库的操作语句,包,被执行的针对数据库的操作语

24、句,包括调用其它存储过程的语句;括调用其它存储过程的语句; l l返回状态返回状态返回状态返回状态,返回给调用者的状态值,以指明调,返回给调用者的状态值,以指明调用是成功还是失败。用是成功还是失败。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l参数参数l存储过程和调用者之间需要通过参数来交换存储过程和调用者之间需要通过参数来交换数据,可以按输入的参数执行,也可由参数数据,可以按输入的参数执行,也可由参数输出执行结果。输出执行结果。 例如:例如:例如:例如:查询学号为查询学号为s2008001的的c01课程的成绩。课程的成绩。输入参数:输入参数:输入参数:输入参数:学号(

25、学号(s2008001)和课程号()和课程号(c01)输出参数:输出参数:输出参数:输出参数:成绩成绩lSQL Server支持这两类参数。支持这两类参数。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l输入参数输入参数l输入参数允许调用程序为存储过程传送数据值。输入参数允许调用程序为存储过程传送数据值。l定义存储过程的输入参数定义存储过程的输入参数l l必须必须必须必须在在CREATE PROCEDURE语句中声明一个或多语句中声明一个或多个变量及数据类型。个变量及数据类型。例例例例13-113-1:创建带参数的存储过程,输入学生学号,返创建带参数的存储过程,输入学生学

26、号,返回学生姓名、性别等个人信息。回学生姓名、性别等个人信息。CREATE PROCEDURE dbo.查询指定学生信息查询指定学生信息 学号学号学号学号 varchar(10) varchar(10) ASselect * from 学生表学生表 where 学号学号=学号学号提示:提示:提示:提示:定义参数的数据类型需和表内字段类型一致。定义参数的数据类型需和表内字段类型一致。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l存储过程的执行存储过程的执行语法格式:语法格式:EXECEXECUTE return_status= procedure_nameprocedur

27、e_name ;number|procedure_name_var parameter= value|variable OUTPUTOUTPUT|DEFAULT ,.n WITH RECOMPILE 13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l执行带输入参数的存储过程执行带输入参数的存储过程在查询分析器中执行例在查询分析器中执行例13-1: exec exec 查询指定学生信息查询指定学生信息查询指定学生信息查询指定学生信息 s2008001 s2008001 exec执行(执行(execute) 查询指定学生信息查询指定学生信息存储过程名存储过程名 s2008001

28、 输入参数输入参数运行结果:运行结果:提示:提示:提示:提示:需要根据输入参数的数据类型加定界符。需要根据输入参数的数据类型加定界符。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l执行时,参数可以执行时,参数可以由位置标识由位置标识由位置标识由位置标识,也可以,也可以由名字标由名字标由名字标由名字标识识识识。l例如,定义一个具有例如,定义一个具有3个参数的存储过程:个参数的存储过程:CREATE PROC myproc val1 int, val2 int, val3 intAS .l参数以位置传递:参数以位置传递:EXEC myproc 10,20,15l参数以名字传

29、递,每个值由对应的参数名引导:参数以名字传递,每个值由对应的参数名引导:EXEC myproc val2=20,val1=10,val3=15l按名字传递参数比按位置传递参数具有更大的灵活按名字传递参数比按位置传递参数具有更大的灵活性。但是,按位置传递参数却具有更快的速度。性。但是,按位置传递参数却具有更快的速度。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l输出参数输出参数l输出参数允许存储过程将数据值传回调用程序。输出参数允许存储过程将数据值传回调用程序。l用用OUTPUTOUTPUT关键字关键字关键字关键字指出能返回到调用它的存储过程。指出能返回到调用它的存储过程

30、。例例例例13-213-2:创建存储过程,查询指定学生的某门课程成绩。创建存储过程,查询指定学生的某门课程成绩。CREATE PROCEDURE dbo.查询成绩查询成绩 学号学号 varchar(10), 课程号课程号 varchar(10),score int outputoutput ASselect score=成绩成绩from 选课表选课表 where 学号学号=学号学号 and 课程号课程号=课程号课程号 13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l执行带输出参数的存储过程执行带输出参数的存储过程在查询分析器中执行例在查询分析器中执行例13-2:decla

31、re declare 学生成绩学生成绩学生成绩学生成绩 int intexec exec 查询成绩查询成绩查询成绩查询成绩 s2008001,c01, s2008001,c01,学生成绩学生成绩学生成绩学生成绩 outputoutputselect select 学生成绩学生成绩学生成绩学生成绩运行结果:运行结果:提示:提示:提示:提示:l输出参数(返回值)需要提前声明,数据类型应同输输出参数(返回值)需要提前声明,数据类型应同输出参数的数据类型相匹配。出参数的数据类型相匹配。lEXEC语句需要关键字语句需要关键字OUTPUT以允许参数值返回变量。以允许参数值返回变量。13.3 13.3 存储

32、过程的执行与参数传递存储过程的执行与参数传递l返回存储过程的状态返回存储过程的状态l用用RETURN语句定义返回值语句定义返回值l存储过程可以返回整型状态值,表示过程是否存储过程可以返回整型状态值,表示过程是否成功执行,或者过程失败的原因。成功执行,或者过程失败的原因。l如果存储过程没有显式设置返回代码的值,则如果存储过程没有显式设置返回代码的值,则SQL Server返回代码为返回代码为 0,表示成功执行;若,表示成功执行;若返回返回-1-99之间的整数,表示没有成功执行。也之间的整数,表示没有成功执行。也可以使用可以使用RETURN语句,用大于语句,用大于0或小于或小于-99的的整数来定义

33、自己的返回状态值,以表示不同的整数来定义自己的返回状态值,以表示不同的执行结果。执行结果。13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递例例例例13-313-3:创建存储过程,输入课程号,返回课程名称。在存储创建存储过程,输入课程号,返回课程名称。在存储过程中,用值过程中,用值15表示用户没有提供参数;值表示用户没有提供参数;值-101表示没有表示没有输入课程号;值输入课程号;值0表示过程运行没有出错。表示过程运行没有出错。CREATE PROCEDURE dbo.查询课程名查询课程名 课程号课程号 as varchar(10)=nullASif 课程号课程号=nullr

34、eturn 15if not exists(select * from 课程表课程表 where 课程号课程号=课程号课程号)return -101select 课程名课程名 from 课程表课程表 where 课程号课程号=课程号课程号13.3 13.3 存储过程的执行与参数传递存储过程的执行与参数传递l捕获返回状态值捕获返回状态值l在执行过程时,要正确接收返回的状态值,必须使用语在执行过程时,要正确接收返回的状态值,必须使用语句:句:EXECUTE status_var=procedure_name EXECUTE status_var=procedure_name 参数参数参数参数 例例

35、例例13-3的存储过程查询课程名执行时使用以下语句:的存储过程查询课程名执行时使用以下语句:DECLARE return_status intEXEC return_status=查询课程名查询课程名 c01IF return_status=15 SELECT 语法错误,未输入参数语法错误,未输入参数!ELSE IF return_status=-101 SELECT 没有找到该课程号没有找到该课程号. l执行时,对不同的输入值返回不同的状态值。执行时,对不同的输入值返回不同的状态值。13.4 13.4 用户自定义函数用户自定义函数l用户自定义函数概述用户自定义函数概述根据函数返回值形式的不同

36、根据函数返回值形式的不同根据函数返回值形式的不同根据函数返回值形式的不同将用户定义函数分为将用户定义函数分为3种类型种类型。(1) 标量函数标量函数标量函数标量函数标量函数标量函数返回一个确定类型的标量值返回一个确定类型的标量值,其函数值类型为,其函数值类型为SQL Server的系统数据类型(除的系统数据类型(除text、ntext、image、cursor、timestamp、table类型外)。函数体语句定义在类型外)。函数体语句定义在BEGINEND语语句内。句内。(2) 内嵌表值函数内嵌表值函数内嵌表值函数内嵌表值函数内嵌表值函数返回的内嵌表值函数返回的函数值为一个表函数值为一个表。

37、内嵌表值函数的函数体不。内嵌表值函数的函数体不使用使用BEGINEND语句,其返回的表是语句,其返回的表是RETURN子句中的子句中的SELECT命令查询的结果集,其功能命令查询的结果集,其功能相当于一个参数化的视图相当于一个参数化的视图。(3) 多语句表值函数多语句表值函数多语句表值函数多语句表值函数多语句表值函数可以看作标量函数和内嵌表值函数的结合多语句表值函数可以看作标量函数和内嵌表值函数的结合体。其体。其函数值也是一个表函数值也是一个表,但函数体也用,但函数体也用BEGINEND语语句定义,句定义,返回值的表中的数据由函数体中的语句插入返回值的表中的数据由函数体中的语句插入。13.4

38、13.4 用户自定义函数用户自定义函数l创建用户自定义函数创建用户自定义函数图图13-6 13-6 创建用户自定义函数对话框创建用户自定义函数对话框13.4 13.4 用户自定义函数用户自定义函数例例例例13-413-4:创建一个用户定义函数创建一个用户定义函数DatetoQuarter,将,将输入的日期数据转换为该日期对应的季度值。如输输入的日期数据转换为该日期对应的季度值。如输入入2006-8-5,返回,返回3Q2006,表示,表示2006年年3季度。季度。CREATE FUNCTION DatetoQuarter(dqdate datetime)RETURNS char(6)ASBEGI

39、N RETURN(datename(q,dqdate)+Q+datename(yyyy,dqdate)END13.4 13.4 用户自定义函数用户自定义函数例例13-5:通过自定义函数根据输入课程号,返回对通过自定义函数根据输入课程号,返回对应的课程名。应的课程名。CREATE FUNCTION F课程名课程名 (courseID char(10) RETURNS char(20) AS BEGIN declare courseName char(20)select courseName=课程名课程名 from 课程表课程表 where 课程号课程号=courseIDreturn course

40、NameEND13.4 13.4 用户自定义函数用户自定义函数例例例例13-613-6:创建一个表值函数创建一个表值函数stuinfo,输入学生学号,输入学生学号,返回学生姓名及各科成绩。返回学生姓名及各科成绩。CREATE FUNCTION stuinfo (xh varchar(10) RETURNS table AS return(select 姓名姓名,课程号课程号,成绩成绩from 学生表学生表 inner join 选课表选课表 on 学生表学生表.学号学号=选课表选课表.学号学号where 选课表选课表.学号学号=xh)13.4 13.4 用户自定义函数用户自定义函数l修改和删除

41、用户自定义函数修改和删除用户自定义函数l用企业管理器修改用户定义函数,选择要修改用企业管理器修改用户定义函数,选择要修改函数,函数,双击或单击右键双击或单击右键双击或单击右键双击或单击右键,从快捷菜单中选择,从快捷菜单中选择“属性属性”选项,打开图选项,打开图13-6所示的所示的“用户定义函数用户定义函数属性属性”对话框。在该对话框中可以修改用户定对话框。在该对话框中可以修改用户定义函数的函数体、参数等。义函数的函数体、参数等。l从快捷菜单中选择从快捷菜单中选择“删除删除”选项,打开选项,打开“除去对象除去对象”对话框,则可删除用户自定义函数。对话框,则可删除用户自定义函数。13.4 13.4

42、 用户自定义函数用户自定义函数l用户自定义函数的使用用户自定义函数的使用l当调用标量值函数时,必须加上当调用标量值函数时,必须加上“所有者所有者”,通,通常是常是dbo(但不是绝对,可以在企业管理器中(但不是绝对,可以在企业管理器中的的“用户定义函数用户定义函数”中查看所有者)中查看所有者)l当调用表值函数时,可以只使用函数名。当调用表值函数时,可以只使用函数名。例例例例13-713-7:调用例调用例13-4函数,返回当前日期对应的季度值。函数,返回当前日期对应的季度值。 select dbo.DatetoQuarter(getdate()例例例例13-813-8:调用例调用例13-6函数,返

43、回学号为函数,返回学号为s2008001的学生的学生姓名和各科成绩。姓名和各科成绩。 select * from stuinfo(s2008001)13.5 13.5 触发器及其作用、效果演示触发器及其作用、效果演示l触发器是一种特殊类型的存储过程。触发器是一种特殊类型的存储过程。l l触发器主要是通过事件进行触发而被执行的,而触发器主要是通过事件进行触发而被执行的,而触发器主要是通过事件进行触发而被执行的,而触发器主要是通过事件进行触发而被执行的,而存储过程可以通过过程名字直接调用。存储过程可以通过过程名字直接调用。存储过程可以通过过程名字直接调用。存储过程可以通过过程名字直接调用。当对某一

44、当对某一表进行表进行UPDATEUPDATE、INSERTINSERT、DELETEDELETE操作时,操作时,SQL Server就会自动执行触发器所定义的就会自动执行触发器所定义的SQL语语句,从而确保对数据的处理必须符合由这些句,从而确保对数据的处理必须符合由这些SQL语句所定义的规则。语句所定义的规则。l触发器的主要作用就是能够实现由主键和外键所触发器的主要作用就是能够实现由主键和外键所不能保证的参照完整性和数据的一致性。不能保证的参照完整性和数据的一致性。13.5 13.5 触发器及其作用、效果演示触发器及其作用、效果演示例例例例13-913-9:为为“课程表课程表”创建触发器创建触

45、发器TRIGGER_课程表,课程表,当执行删除时激活,判断删除的课程号是否已被当执行删除时激活,判断删除的课程号是否已被选,已选课程拒绝删除。选,已选课程拒绝删除。CREATE TRIGGER TRIGGER_课程表课程表 ON dbo.课程表课程表 FOR DELETE ASif exists(select * from deleted inner join 选课表选课表 on deleted.课程号课程号=选课表选课表.课程号课程号)beginprint 在选课表中有该门课程,不能删除在选课表中有该门课程,不能删除rollback tranreturnend小结与提问小结与提问l存储过程、用户自定义函数和触发器存储过程、用户自定义函数和触发器

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号