Access爱好者--
所属分类: ADP相关 作者: 李寻欢 更新日期:2004-1-1 21:23:13 阅读次数:1157

SQL SERVER基本概念学习印象


没学SQL SERVER之前,我曾想过把自已以前做的一些管理程序升级成ADP,但一看到什么存储过程、视图、触发器之类的东西就头大,然后一直使用的查询也不知道怎么建,实在是很头痛。其实这些东西并没想象中的难以接受及难学,下面我就把自已对于存储过程、视图、触发器还有游标的理解整理一下写出来,就当是温习功课吧,因为过几天要考试了,由于初学,有不对的地方,请各位批评指正。

视图:视图就是MDB中的查询,你在mdb中做的查询,在adp中转成视图就行了,用法是一样的,就是把它当成表来用。

 ★视图是由查询定义的虚表。
 ★视图在物理上并不存在,它只是数据库中数据值的存储集合。
 ★视图与表十分相似,包含若干列和行。可以进行选择、更新和删除操作。但对视图修改有限制。
 ★使用视图的好处在于,可以控制用户可查看的数据,从而提供了数据的安全性。

存储过程:单独的SQL语句相信大家都用过,过程相信大家也都用过,比如一个按钮的单击事件,事件里的语句就是一个过程,可以在过程里声明变量,以及用流程控制语句改变程序语句的执行顺序。如果单独的SQL语句及普通的过程大家都会用,那存储过程也就没问题了,因为存储过程是单条或多条SQL语句的组合,并可声明变量,可接收、传出变量(参数),也可用流程控制语句改变SQL语句的执行顺序。

 ★存储过程提供了比个别SQL语句更多的优点:
 ★更快速地执行:第一次执行时编译,以后可以直接执行。
 ★本地和远程执行。
 ★模块化编程方式(重复使用)。
 ★把大的程序分成小的可以独立运作的存储过程,以后可以在需要的地方调用
 ★增强的可靠性:可以利用return返回值来检查执行的情况
 ★一致性。把复杂的操作写成存储过程,在需要时调用,可以避免用户不小心的操作错误。多次使用都一样
 ★安全性。只要可以执行存储过程,则可以通过存储过程访问无权限访问的数据。

触发器:触发器可以说是表的事件,它对表的某类操作(插入、更新或删除操作)做出反应。

触发器是相当有用的东西,我举一个应用的例子。
仓库管理系统中的两个表:入库明细表、物料表,每当入库明细表新增一条记录,物料表中的“当前库存”字段也要加上相应的数量,这个时候就可用触发器来完成,每当插入记录时,就触发一个过程来完成更改“当前库存”字段的任务。
 ★触发器是在对表执行插入、更新或删除操作时,作为响应而执行的过程。
 ★当执行上述任何一项操作时,就会自动启动触发器。
 ★触发器通常用于强制执行业务规则。从而保证数据的完整性和一致性。
 ★应使触发器和表的INSERT、UPDATE或DELETE操作相关联。当完成操作语句时,自动执行触发器。
 ★更改数据时可调用触发器,根据触发器的类型决定:
 允许或禁止更改数据
 调用业务规则(保证数据有效的规则)
 在整个数据库内级联更新和级联删除

游标:

DAO或ADO的记录集大家都用过吧,重温一下使用记录集的步骤:
1、声明记录集,并从记录源中获取记录集
Dim cn As New ADODB.Connection
Dim rs As New ADODB.Recordset
Dim sql As String
Set cn = CurrentProject.Connection
sql = "select * from 表1"

2、打开记录集
rs.Open sql, cn, adOpenKeyset, adLockPessimistic, 1

3、在记录集中读取记录
Do While Not rs.EOF
Debug.Print rs.Fields(1)
rs.MoveNext
Loop

4、关闭记录集及连接
rs.Close
cn.Close

5、释放连接
Set cn = Nothing

下面是游标的使用示例:
1、声明游标,并获取游标所需记录集
declare OrderQty cursor static
for select orderno,sum(Qty) from OrderDetails group by orderNO
declare @v_qty smallint,@v_orderno varchar(10)

2、打开游标
open OrderQty

3、在游标中读取记录
fetch next from OrderQty into @v_orderno,@v_qty
while (@@fetch_status=0)
begin
if @v_qty<25
print 'Order number'[email protected]_orderno+' has a low order quantity'
else
print 'Order number'[email protected]_orderno+' has a low order quantity'
fetch next from OrderQty into @v_orderno,@v_qty
end

4、关闭游标
close OrderQty

5、释放游标所点用资源
deallocate OrderQty

看了上面的对比之后是不是觉得游标很象DAO或ADO中的记录集呢,只是某些语法不太一样而已,如果你会使用记录集,只需最多半天时间就可学会使用游标。

 ★游标(Cursor)可以看成是一个用来保存“记录集”的对象,记录可以逐条从游标中读取。
 ★SQL Server支持在服务器上定义和存储游标,这些游标称为服务器端游标。
 ★服务器维护着构成游标的整个记录集。游标通常从存储过程或触发器中调用。
 ★游标两种特性:处理特性和功能特性。




--------------------------------------------------------------------------------
相关文章

调用outlook生成并发送邮件的代码 2004-1-30 10:32:07
一组SQL Server身份验证管理子程序 2003-12-31 16:29:54
Access 数据库和 Access 项目之间的数据类型的比较或映射 2003-12-26 14:20:19
大型数据库设计原则 2003-12-15 12:49:18
ERwin--简化的数据库设计工具 2003-12-15 12:41:40
ERwin软件简介 2003-12-15 12:39:55
了解 Microsoft Access 安全性 2003-11-13 11:21:08
避免Access和SQL Server的空值冲突 2003-10-17 20:03:19
SQL SERVER 与ACCESS、EXCEL的数据转换 2003-10-17 19:12:00
MS Jet SQL for Access 2000中级篇 (II) 2003-10-17 18:51:01
MS Jet SQL for Access 2000中级篇 (I) 2003-10-17 18:47:38
使用ADO连接到防火墙后的SQL Server 2003-10-17 18:43:57
ADO连接数据库字符串大全 2003-10-17 18:40:47
ADO三大对象的属性、方法、事件及常数(二) 2003-10-14 8:45:33
ADO三大对象的属性、方法、事件及常数(三) 2003-10-14 8:44:20
ADO三大对象的属性、方法、事件及常数(一) 2003-10-14 8:43:26
Access启动命令行选项大全 2003-10-10 10:02:00
数据库应用程序需注意的问题 2003-10-6 11:11:06


系统优化
控件使用
数据库设计
数据库连接
系统安全
OLE自动化
常见问题
实用代码
属性详解
网络相关
实用API
经验分享
精选教程
字符处理
ADP相关



文章搜索



制作维护:李寻欢     Mail:[email protected]

关于本站 -- 网站服务 -- 版权条款 -- 联系方法 -- 网站帮助
Access爱好者版权所有 Copyright 2003-2005 All Rights Reserved 未经许可不得盗链