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
|