六.触发器的用途
1.触发器的介绍:
触发器(trigger)是个特殊的存储过程,它的执行不是由程序调用,也不是手工启动,而是由事件来触发,比如当对一个表进行操作( insert,delete, update)时就会激活它执行。触发器经常用于加强数据的完整性约束和业务规则等。 触发器可以从 DBA_TRIGGERS ,USER_TRIGGERS 数据字典中查到。
2.
3.
七.SQL Server的程序设计
1.用户自定义函数:
1).创建标量用户自定义函数:
-----------------------------------------------
create function avg_book1(@出版社 nchar(20))
returns float
as
begin
declare @平均定价 float
set @平均定价=(select avg(定价)
from book1
where 出版社=@出版社)
return @平均定价
end
------------------------------------------------
select dbo.avg_book1('中国长安') as '平均价格'
------------------------------------------------
2).创建直接表值用户定义函数:
------------------------------------------------
create function 书摘要(@出版社 nchar(20))
returns table
as
return(select 书名,定价,出版社
from book1
where 出版社=@出版社)
------------------------------------------------
select * from dbo.书摘要('海南')
------------------------------------------------
3).创建多语句表值用户自定义函数:
------------------------------------------------
create function higher_money(@highermoney money)
returns @higher_money Table(编号 nvarchar(255),
书名 nvarchar(255),定价 money,出版社
nvarchar(255))
AS
Begin
insert @higher_money
select bookin.编号,书名,定价,出版社
from bookin,book1
where bookin.编号=book1.编号 and 定价>@highermoney
return
end
------------------------------------------------
select * from dbo.higher_money(500)
------------------------------------------------
2.流程控制语句:
declare @定价 money,@message varchar(250)
set @定价 =2000
if exists (select *
from book1
where 定价>@定价)
begin
select distinct book1.编号,书名,定价
from book1
where 定价>@定价
end
else
set @message='不存在高于8000元的书!'
print @message
3.等待0小时01分0秒后才执行Select语句:
waitfor delay '00:01:00' select * from book1
4.GOTO语句:
declare @sum smallint,@i smallint
set @i = 1
set @sum=0
beg:
if(@i<100)
begin
set @sum=@sum+@i
set @i=@i+1
goto beg
end
print @sum
5.
6.
7.
八.游标的使用与定义
1.游标(CURSOR)是一种数据访问机制,它允许用户访问单独的数据行,而并非对整个行集合进行操作。
2.游标的定义:
游标是一个与Transact-SQL的SELECT语句相关联的符号名,它使用户可逐行访问由SQL Server返回的结果集。游标包括以下两个部分:
1)游标结果集(Crusor Result Set):由定义该游标的Select语句返回的行集合.
2)游标位置(Cursor Position):指向这个行集合某一行的当前指针。
3.游标的优点:
1)允许程序对由查询语句Select返回的行集合中的每一行执行相同或不同的操作,而不是对整个行集合执行同一个操作。
2)提供对基于游标位置的表中的行进行删除与更新的能力。
3)游标实际上是作为面向集合的数据库管理系统(DBMS)和面向行的程序设计之间的桥梁。
4.游标的使用:
1)游标的声明:
DECLARE crusor_name CURSOR
FOR select_statement
[FOR { READ ONLY | UPDATE [OF column_name_list [,...]]}]
2)打开游标:
OPEN cursor_name
3)使用FETCH语句,从结果集中检索单独的行
FETCH [ [ NEXT | FRIOR | FIRST | LAST] FROM] cursor_name [ INTO fetch_target_list]
4)使用游标修改数据:
UPDATE 和DELETE都是集合操作语句,如果只想修改或者删除其中某个记录,则需要用带游标的SELECT 语句查出所有满足条件的记录,从中进一步找出要修改的记录。
5)关闭游标:
CLOSE cursor_name
6)释放游标:
DWALLOCATE CURSOR cursor_name
其中:如果释放一个已经打开但没有关闭的游标,SQL Server 会自动先关闭这个游标,然后再释放它。
<!--EndFragment-->
分享到:
相关推荐
数据库编程的课件 T-SQL程序设计基础 存储过程 游标 触发器
725到体系结构复习 范围 : 选择题 30分, 编程题30分, 语句题 简答题数据库对象PLMSQL : 过积函数包 、游标 循环 (不考触发器)索引概念 事
2.触发器不接受用户应用程序传递的参数。 五、实验学时:6学时 六、实验重点及难点 1. 函数的使用方法和技巧。 2. 创建和调用存储过程的语法。 3. 创建触发器的语法。 七、实验步骤 第一部分: 7.1 建库、表并...
PL/SQL程序设计 [实验原理] 1. 建立触发器 CREATE [OR REPLACE] TRIGGER <触发器名> BEFORE"AFTER INSERT"DELETE"UPDATE OF <列名> ON <表名> [FOR EACH ROW] WHEN (<条件>) 程序块> ON 子句中的名称识别与数据库...
PL /SQL是一种高级数据库程序设计语言,该语言专门用于在各种环境下对ORACLE数据库进行访问。由于该语言集成于数据库服务器中,所以PL/SQL代码可以对数据进行快速高效的处理。除此之外,可以在ORACLE数据库的某些...
设计触发器的原则 触发器的删除 禁止和允许触发器 触发器应用举例 使用触发器实现审计功能 使用触发器维护数据完整性 使用触发器保障数据安全性 使用触发器派生字段值 第章安全管理 创建角色语句 删除...
SQL Server 2008高级程序设计 2/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...
3、要求使用sqlplus,pl/sql或developer建立存储过程,触发器和程序包等代码,其中要求用到游标,异常,各种语句等对表中数据进行处理; 4、使用自己熟悉的开发语言,加入界面,连接数据库; 5、报告要有操作截图...
SQL程序设计的方方面面,如基于集合的编程技术、日期和时间相关的XML和CLR数据类型的使用、临时对象、T-SQL和CLR用户自定义函数、存储过程、触发器、事务和新的错误处理结构、应用并发模型支持并发用户、使用Service...
PL/SQL 程序设计 本章主要重点: PL/SQL概述 PL/SQL块结构 PL/SQL流程 运算符和表达式 游标 异常处理 数据库存储过程和函数 包 触发器
第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...
SQL Server 2008高级程序设计 5/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...
SQL Server 2008高级程序设计 4/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...
SQL Server 2008高级程序设计 6/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...
SQL Server 2008高级程序设计 3/6 SQL Server 2008 2010 高级程序设计 作者:(美)维埃拉 著,杨华,腾灵灵 译 出版社:清华大学 出版日期:2010-4-1 ISBN:9787302222729 字数:1250000 页码:730 ----------------...
《SQL Server 2008高级程序设计》由世界顶尖SQL Server权威专家Robert Vieira编写,旨在指导您熟练运用一系列日趋复杂的功能,助您更高效地管理数据。 本书首先介绍SQL Server 2008的新功能,然后在更详实的示例...
以SQL Server为工具,讲解SQL语言的应用,提供了近500个曲型应用,读者可以随查随用,深入讲解SQL语言的各种查询语句,详细介绍数据库设计及管理,详细讲解存储过程、解发器和游标等知识,讲解了SQL语言在高级语言中...
oracle的一些简单应用! 第一章 走进Oracle 1 第二章 SQL数据操作和查询...第六章 PL/SQL程序设计 第七章 子程序和程序包 第八章 游标、内置程序包 第九章 触发器、数据字典 第十章 数据库管理 附录 数据库导入导出
第一章 PL/SQL 程序设计简介 4 §1.2 SQL与PL/SQL 4 §1.2.1 什么是PL/SQL? 4 §1.2.1 PL/SQL的好处 4 §1.2.2 PL/SQL 可用的SQL语句 5 §1.3 运行PL/SQL程序 5 第二章 PL/SQL块结构和组成元素 6 §2.1 PL/SQL块 6 ...