- 浏览: 209250 次
- 性别:
- 来自: 济南
-
文章分类
最新评论
-
Kesin97:
不错 很有用。选择性锁也不太影响性能。
sqlserver的updlock锁 (转) -
fox-idea:
学习
用PC作数据库服务器的容灾问题 -
xwei78:
话说这个下载地址不太好找啊,我去oracle网站转了好一会才找 ...
oracle10g官方客户端配置
问题描述: <?XML:NAMESPACE PREFIX = O /?>
用 ADO 访问数据库,从一个表中取一定的记录(比如 20 行),取出后在程序中使用,使用完后删除掉记录(不用更新或删除记录)。在多用户操作下 ( 每个用户采用相同的操作 ) ,怎么保证一个用户已选取的记录不被其他用户选取 ?
问题解决:
处理这类问题的一般方法是增加一个标志列,每个用户取的记录设置一个标志,新的用户只从标志为未取的记录中获取记录。
而本文利用事务与锁来控制数据的处理,不需要增加任何标志列
下面是具体的解决示例
1. 建立测试环境
USE tempdb
GO
CREATE TABLE dbo.tb(
id intidentity(1, 1),
name nvarchar (128))
INSERT tb(name)
SELECT TOP 100
name
FROM syscolumns
GO
2. 模拟第 1 个用户
-- 查询窗口发出下面的查询语句
BEGIN TRAN
-- 事务不提交或者回滚 , 以保持锁不释放
SET ROWCOUNT 20
SELECT *
FROM tb WITH(UPDLOCK, READPAST)
-- UPDLOCK 让锁保留到事务结束 , READPAST 跳过已经锁定的数据
3. 模拟第 2 个用户(语句与第 1 个用户一样,只是在另一个连接中执行)
-- 查询窗口发出下面的查询语句
BEGIN TRAN
-- 事务不提交或者回滚 , 以保持锁不释放
SET ROWCOUNT 20
SELECT *
FROM tb WITH(UPDLOCK, READPAST)
-- UPDLOCK 让锁保留到事务结束 , READPAST 跳过已经锁定的数据
4. 结果
你会看到
查询窗口 1 列出了前 20 条数据
查询窗口 1 列出了 21-40 条数据
这样就实现了不同的用户取不同数据的需求 .
注 : 处理完成后 , 删除记录 , 然后提交事务就可以了 .
发表评论
-
hsqldb使用命令
2012-03-05 23:12 1008REM 启动hsqldb服务器: java -cp ... -
h2 数据库使用 转
2011-10-14 15:32 1328转载请注明: 转自LifeBa,谢谢合作:) 本文永久链接 : ... -
数据库一些问题
2011-05-25 21:53 6731.内外连接 内连接是返回两个表都存在的记录. 外连接是返回 ... -
sql server 面试--转
2011-05-25 21:08 8531.磁盘柜上有14块73G的磁盘, 数据库为200G ... -
mysql增量备份 转
2011-03-06 22:06 1352MySQL 增量备份步骤: 1. 启用 MySQL 二进制 ... -
mysql用户操作
2011-02-22 11:27 711六、修改密码 格 ... -
oracle10g官方客户端配置
2010-11-22 10:20 1727先到官网上下载10G的客户端 我下载的是 instant ... -
完全删除oracle
2010-11-22 09:59 7481、停止所有Oracle服务; 2、开始->程序->O ... -
用PC作数据库服务器的容灾问题
2010-07-30 16:01 927现在好多小单位都有自己的财务等一些小系统,但是又不想花大价 ... -
linux下MySQL配置文件讲解[转载
2010-07-24 16:44 1736MySQL配置文件文章来源:[url]http://www.l ... -
Linux(centos) 更改MySQL数据库目录位置 转
2010-07-24 16:29 1573MySQL默认的数据文件存储目录为/var/lib/mysql ... -
CentOS系统MySQL优化详解 转
2010-07-24 16:25 1183CentOS系统的确很好用,但是还是很多地方需要我们进行正确的 ... -
oracle精简客户端配置
2010-07-24 10:46 214程序员都知道 <script ... -
sqlserver newid() 锁问题
2010-01-28 17:29 883select top 1 * from callback wi ... -
是否需要增加表空间的数据文件
2009-12-16 08:10 1227--1查看表空间已经使用的百分比 Sql代码 ... -
Mysql 日志文件介绍
2009-12-15 17:40 1153MYSQL日志 Mysql提供了一下几组日志,用来帮助你 ... -
MySQL数据库二进制日志恢复方法
2009-12-15 17:39 1223如果MySQL服务器启用了 ... -
数据库在误操作下,日志恢复
2009-12-15 17:24 1721在使用了updata,delete,或者其他情况让数据库遭到破 ... -
几种oracle数据库恢复的练习示例
2009-12-15 17:06 1211作为一个dba,最重要的工作莫过于保证数据库中数据的安全,当一 ... -
sqlserver日志文件收缩 通过日志恢复
2009-12-15 16:18 1634解决方法 日志文件满而 ...
相关推荐
而邹健,作为一个在SQL Server领域有着深入研究的专业人士,他的代码作品无疑为我们提供了一个宝贵的参考资料,帮助我们理解和掌握SQL Server的精髓。 SQL Server的核心特性包括强大的数据处理能力、事务处理支持、...
SQL Server 2000是微软公司推出的一款关系型数据库管理系统(RDBMS),它在20世纪末至21世纪初被广泛应用于企业级的数据存储和管理。尽管随着时间的推移,SQL Server已经发展到更高的版本,但SQL Server 2000的基础...
12.事务(TRANSACTION)与并发控制:确保数据的一致性和完整性,如COMMIT, ROLLBACK操作,以及锁定和死锁的概念。 13.索引(INDEX):用于加速数据检索,包括唯一索引、全文索引、复合索引等,合理使用能极大提升...
在邹健的“中文版SQL Server 2000开发与管理应用实例”中,读者可能会学习到如何设计和实施数据库架构,如何进行性能调优,以及如何处理并发访问和事务管理。这些实践案例对于理解SQL Server的实际应用非常有价值。 ...
在IT领域,SQL(Structured Query Language)是一种用于管理和处理关系数据库的强大语言,广泛应用于数据查询、更新、插入和删除等操作。SQLServer2000是微软公司推出的一款企业级数据库管理系统,它提供了高效的...
实现数据导入/导出的存储过程 根据不同的参数,可以实现导入/导出整个数据库/单个表 调用示例: --导出调用示例 ----导出单个表 exec file2table 'zj','','','xzkh_sa..地区资料','c:\zj.txt',1 ----导出整个数据库 ...
中文版SQL SERVER 2000开发与管理应用实例 PDF
邹建老师写的《中文版SQL SERVER 2000开发与管理应用实例》。邹健的大名,应该都知道的吧。这本书不怎么清晰,想看清晰的,还是买一下他的书吧。也是对别人劳动的尊重。
连续函数的零点问题是数学分析中的一个重要议题,主要研究连续函数在其定义域内的零点集合的性质。在给定的文件中,宋述刚和邹健两位学者详细探讨了非平凡连续函数零点集的测度问题,并证明了零点集的Lebesgue测度为...
这个PPT课件由一系列专家的演讲组成,他们是中国钢铁行业的领军人物,包括戚向东、黄金干、胡名洋、邹健、闫启平和孔令铭等。 首先,戚向东作为中国钢铁协会的常务副秘书长、首席分析师和资源经济研究员,他的演讲...
csdn sql 版主 邹建 编 你能找到这,不用我详细说明了...3.深入浅出SQL Server 2005开发,管理与应用实例(这个是他写的2005版本对应的代码,电子书就没有了) 注:因为我只可以一次上传60M,这文件分3部份.请都要下载.共5分
csdn sql 版主 邹建 编 你能找到这,不用我详细说明了...3.深入浅出SQL Server 2005开发,管理与应用实例(这个是他写的2005版本对应的代码,电子书就没有了) 注:因为我只可以一次上传60M,这文件分3部份.请都要下载.共5分
csdn sql 版主 邹建 编 你能找到这,不用我详细说明了...3.深入浅出SQL Server 2005开发,管理与应用实例(这个是他写的2005版本对应的代码,电子书就没有了) 注:因为我只可以一次上传60M,这文件分3部份.请都要下载.共5分
邹大斑竹的书当然要下的哦
邹大斑竹的书当然是要下的哦!!
邹大斑竹的书当然是要下的啊!!
邹大斑竹的书当然是要下载的哦!!!
邹大斑竹的书当然是要下的哦!!!!
邹大斑竹的书当然是要下的哦!!
邹大斑竹的书当然是要下载的哦!!!