数据库应用与开发教程(ADO.NET+SQL Server 单元09 编号与树形数据新.pptVIP

  • 2
  • 0
  • 约8.63千字
  • 约 41页
  • 2015-12-24 发布于广东
  • 举报

数据库应用与开发教程(ADO.NET+SQL Server 单元09 编号与树形数据新.ppt

回顾 创建索引可以明显提高系统性能。 创建索引的语法是: Create [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] Index 索引名 存贮过程可加快查询速度、提高安全性、减少网络流量和模块化编程。 CREATE PROC语句用于创建存贮过程。 EXECUTE语句用于调用存贮过程。 sp_recompile用于重新编译存储过程。 ADO.NET添加参数常使用: SqlCommand.Parameters.Add(参数名,类型) 使用SqlCommand调用存贮过程,应设置属性 CommandType = CommandType.StoredProcedure; CommandText = 存贮过程名 本单元任务 任务一 实现成绩信息表中“编号”生成 任务二 实现手工生成“学号” 任务三 实现“学院、专业、班级”的机构树的生成 本单元目标 创建标识列实现数据自动增长 使用SCOPE_IDENTITY()获取最后插入的标识列值 理解锁的概念 根据编号规则进行编号设计,并产生编号 能够进行树形数据的设计 使用TreeView控件创建树形 任务一实现成绩信息表中“编号”自动生成 创建标识列IDENTITY 使用Management Studio和T-SQL创建表 T-SQL创建表时指定标识列 T-SQL创建表时指定标识列 标识列可用IDENTITY属性建立 【例9-1】创建测试表TEST,该表包含名为ID、类型为int、种子为1、递增量为1的标识列。 为标识列插入数据 为包含标识列的数据表插入数据时,在通常情况下,不能显示对标识列指定值,系统会根据标识列的定义自动填充值。 【例9-2】为例9-1创建的测试表TEST中,添加两行数据。 获取插入到IDENTITY列的标识值 获取生成的最后一个标识值,可以使用三种方法: @@IDENTITY SCOPE_IDENTITY() iDENT_CURRENT() 【例9-3】新注册一个用户’王五’,要求告知用户其用户号是多少。 任务实施 在成绩信息表中,因为(学号,课程号)才能唯一确定某行数据,因此,应设置复合主键(学号,课程号)。但是,建议复合主键应尽量少使用,所以,我们可以另设置一列“编号”,作为 主键。 为了唯一区别每行数据,所以我们将其设置为标识列。 任务二 实现成绩信息表中“编号”自动生成 锁 锁是数据库用来控制共享资源并发访问的机制。 锁用于保护正在被修改的数据 直到提交或回滚了事务之后,其他用户才可以更新数据 锁的分类 从数据库系统的角度来看 : 排他锁(X锁) 共享锁 更新锁 从程序员的角度看:分为乐观锁和悲观锁: 乐观锁:完全依靠数据库来管理锁的工作。 悲观锁:程序员自己管理数据或对象上的锁处理 排他锁范例 ① 新建两个连接,在第一个连接中对学生作学籍变更,执行: ② 在第二个连接,查询学生信息,执行以下语句: 观察到,第二个连接的select查询必须等待。 … ③ 在第一个连接中再执行以下语句:commit tran 观察锁的情况 打开活动监视器,可观察到表student的锁情况。 锁提示 查表法 手工生成编号,最简单的方法就是查询表中的编号最大值,然后+1即得到最新的编号。 【例9-6】手工生成用户号,用户号规则为’U’+5位顺序号。 查表法范例 (1)从当前表中的查询编号最大值,取后5位 。 (2)当前最大编号+1,并且不足5位前面补零。 (3)因为该编号规则,每次插入数据都需要使用,创建函数。 模拟多用户并发操作 (1)对用户表插入10000行数据的脚本 (2)编写执行脚本的批处理文件 (3) 双击执行这4个批处理文件(每个批文件模拟一个用户的操作)。 (4)可以观察到输出文件的信息,很多数据行没有插入。 解决多用户并发问题 【例9-8】多用户并发操作时,生成用户号 修改插入测试数据的脚本 观察到无错误信息出现 按日期生成编号 按日期生成编号需要按照当天的日期查最大编号。 【例9-9】手工生成订单号,订单号规则为:6位日期+6位顺序号。如090601000001表示2009年6月1日的第一张订单。 独立编号表法 建立一个单独的编号表,用来保存每种编号的最新编号,获取新编号时,只需要查询编号表就可以了。 由于编号表数据行不多,所以造成进程阻塞的可能性就非常小。 【例9-10】手工生成用户号,用户号规则为’U’+5位顺序号,采用独立编号表法。 ① 创建编号表 ② 生成两种编号类别 独立编号表法 创建获取编号的存贮过程: 按日期生成编号 创建

文档评论(0)

1亿VIP精品文档

相关文档