摘要: 前触发器create view v1as select student.sno,ssex,cno,gradefrom student,scwhere student.sno=sc.sno=====================delete from v1 where ssex='W' --不能删除,因为:视图或函数 'v1' 不可更新,因为修改会影响多个基表。这时就该前触发器上场了create trigger mytri2on v1instead of deleteasdelete from sc where sno in(select sno from de 阅读全文
posted @ 2013-11-30 21:36 有志青年期待逆袭 阅读(145) 评论(0) 推荐(0) 编辑
摘要: 一、概念触发器基于一个表或视图创建,但可以操作多个表或视图。一般的存储过程通过存储过程名称被直接调用,而触发器主要是通过事件进行触发而被执行。触发器的触发操作是insert、delete、update,执行中涉及到两个迁移表(虚表、临时表,触发器执行完自动销毁):inserted,deleted。触发器与存储过程的区别:无论是哪类存储过程(自动运行存储过程除外)都需要调用才可执行,而触发器不需要调用,达到触发条件即可触发。触发器分前触发器和后触发器,后触发器执行过程:当执行到引发触发器执行的语句临界点时,继续执行语句,然后再执行触发器内的语句。应用较多一个能很好的说明上图的例子:题的要求为如果 阅读全文
posted @ 2013-11-30 17:51 有志青年期待逆袭 阅读(185) 评论(0) 推荐(0) 编辑
摘要: 存储过程(Stored Procedure)是一组为了完成特定功能的SQL语句集,经编译后存储在数据库中。存储过程可包含程序流、逻辑以及对数据库的查询。 它们可以接受参数、输出参数、返回单个或多个结果集以及返回值。创建存储过程:create procedure mysp1@Startgrade numeric(4,2)(=10 如果这样写,它就是默认值),@Endgrade numeric(4,2), --这两个为输入参数,调用时需为其指定值,记住不用想下面的输出参数一样写output,即后面没有input关键字--来指定它是输入参数@maxgrade numeric(4,2) outpu.. 阅读全文
posted @ 2013-11-30 17:41 有志青年期待逆袭 阅读(212) 评论(0) 推荐(0) 编辑
摘要: 1、声明游标declare cursor_name CURSOR for select_statement(注意红色字体部分的顺序)2\打开游标open cursor_name打开游标后,就可以使用@@cursor_rows全局变量检索游标中的行数。3、使用游标FETCHnextFROM cursor_name INTO @variable_name4、关闭游标close cursor_name5、释放游标DEALLOCATE cursor_name一般都会使用while循环,记得在while循环中还要使用一次fetch next from cursor_name into @variable 阅读全文
posted @ 2013-11-30 17:26 有志青年期待逆袭 阅读(235) 评论(0) 推荐(0) 编辑
摘要: 用户自定义函数分标量函数、表值函数、内嵌表值函数一、标量函数CREATE FUNCTION 函数名([形式参数名称 [as] 数据类型[=default] [,…n] ]) --形参可有多个RETURNS 返回数据类型[with encryption] [AS]BEGIN 函数内容 --可没有函数体 RETURN 表达式 --必须要有返回值语句END 例如:create function myfun1(@dept char(10),@menshu int)returns intbegindeclare @renshu intselect @renshu=count(sc.sno) from s 阅读全文
posted @ 2013-11-30 17:17 有志青年期待逆袭 阅读(251) 评论(0) 推荐(0) 编辑
摘要: 一、数据类型转换函数* CAST( expression AS data_type)* CONVERT( data_type ,expression)在用print输出时注意要将数据类型转换为字符型。二、CASE表达式*CASE 测试表达式 WHEN 测试值1 THEN 结果表达式 WHEN 测试值2 THEN 结果表达式2...[ELSE 结果表达式n]END*CASE WHEN 逻辑表达式1 THEN 结果表达式1 WHEN 逻辑表达式2 THEN 结果表达式2 … [ELSE 结果表达式n]END三、WAITFOR { DELAY 'time' | TIME 't 阅读全文
posted @ 2013-11-30 17:07 有志青年期待逆袭 阅读(128) 评论(0) 推荐(0) 编辑