0 0

SQL Server 2000 如何锁定表中的行,使其他线程读取该行时候发生sql异常,不能读取?20

SQL Server 2000 如何锁定表中的行,使其他线程读取该行时候发生sql异常,不能读取?

以及锁定之后如何对该行数据进行释放?
2011年9月15日 13:30

3个答案 按时间排序 按投票排序

0 0

采纳的答案

只能通过transaction和lock让别人读取这行的时候等待。如果真要做。。。高一点山寨也不是不行,不过非常恶心。

首先,得在一个大transaction里面,我假设你的C#层已经做了transaction了,然后可以:

DECLARE @exists INT
SELECT @exists = 1 FROM myTable WITH (NOLOCK) WHERE column = condition

DECLARE @notLocked INT
SELECT @notLocked = 1 FROM myTable WITH (READAPTS) WHERE column = condition

IF @exists = 1 AND @notLocked IS NULL
BEGIN
    RAISERROR(16, 1, 'ERROR')
    RETURN -1
END

SELECT * FROM myTable WITH (ROWLOCK, UPDLOCK) WHERE column = condition



少数情况还是会有等待发生,但概率很小。具体可能需要调整,理解那些index hint后会大致理解吧,看看http://msdn.microsoft.com/en-us/library/ms187373.aspx有帮助,不过sql server 2000的已经没了。

2011年9月20日 23:30
0 0

关于锁的释放,如果transaction rollback或者commit就自动释放了。
如果select的时候不加updlock 默认concurrency level是read committed, 会立刻释放。updlock可以换成xlock更保险,每个lock干啥的可以看文档。

2011年9月20日 23:32
0 0

SQL Server 2000还有这种功力?你是从哪看到过还是自己想这样实现?

2011年9月16日 15:27

相关推荐

    kepserver读取SQL Server数据库

    在本文中,我们将深入探讨如何使用KEPServer来读取SQL Server数据库的具体步骤。 首先,打开KEPServer软件并创建一个新的通道。选择"ODBC Client"作为数据源类型,因为我们需要通过ODBC(Open Database ...

    win7 Sqlserver2000 不能新建表的解决办法

    在Windows 7操作系统中安装和使用SQL Server 2000可能会遇到一些兼容性问题,尤其是在尝试新建数据库表时。由于SQL Server 2000是较老的版本,它可能无法很好地与较新的Windows 7环境兼容。本文将详细阐述解决在Win7...

    SQL Server中读取XML文件的简单做法

    在SQL Server中,读取XML文件并对其进行处理是数据库管理员和开发者经常遇到的任务。XML作为一种通用的数据交换格式,被广泛用于存储和传输结构化数据。然而,在SQL Server 2000中,处理XML文件并不像导出数据那样...

    sql server 直接读取excel

    在SQL Server中,直接读取Excel文件是一种常见的需求,特别是在数据整合、分析或者报表生成时。标题和描述中提到的方法允许我们避免将Excel数据导入到数据库中,而是直接在SQL Server中对Excel文件进行查询或处理。...

    java读取sqlserver image字段.docx

    1. **异常处理**: 在实际应用中,一定要妥善处理各种可能发生的异常,比如网络异常、SQL异常等。 2. **资源关闭**: 使用完数据库连接、输入/输出流后,应确保它们被正确关闭,避免资源泄露。 3. **性能优化**: 如果...

    SQL Server 2000完结篇系列之三:数据并发-彻底掌握SQL Server 2000事务机制

    在SQL Server 2000中,事务管理是数据库系统中至关重要的部分,因为它涉及到数据的一致性、完整性和并发控制。本篇将深入探讨SQL Server 2000的事务机制,帮助你全面理解并掌握如何在多用户环境下有效地处理数据并发...

    C#中读取sql server的数据,并在datagridview中显示

    本文将深入探讨如何在C#中读取SQL Server的数据,并将其在DataGridView控件中进行展示,以此来实现数据的可视化呈现。此过程不仅涉及到了数据库连接、SQL查询语句的执行,还涵盖了数据集(DataSet)的使用以及...

    Sqlserver2000 四合一版本(中文版)

    sqlserver2000个人版 sqlserver2000企业版 sqlserver2000开发版

    SQLServer2000数据库与Excel数据表转换C#实现

    本文将深入探讨如何使用C#编程语言来实现SQL Server 2000数据库与Excel 2003数据表之间的转换。 首先,我们来看如何将SQL Server的数据导出到Excel。在C#中,我们可以使用ADO.NET(.NET Framework的一部分)来连接...

    sqlserver2000 jdbc驱动包

    jdbc连接sqlserver2000数据库的驱动包;包含msbase jar mssqlserver jar msutil jar 注意事项:下载解压sql包 数据源驱动 rar文件 解压后的驱动包文件应放到固定的文件夹下 以避免再次打开程序运行时 系统能找到驱动...

    C# SQLserver中读取XML数据

    C# SQLserver中读取XML数据 SQLserver中读取XML数据.rar

    SqlServer表结构转oracle表结构

    C#代码可以通过ADO.NET或者其他数据库访问库连接到SQL Server和Oracle,读取SQL Server的表结构,然后在Oracle中创建相应的表。 3. **注释迁移**:在SQL Server中的表注释和字段注释,通常存储在系统视图中。C#代码...

    SQL Server 2000 msde2000企业管理器绿色免安装版

    MSDE(Microsoft SQL Server Desktop Engine),全称为Microsoft SQL Server 2000 Desktop Engine,是SQL Server的一个轻量级版本,主要用于支持小型应用程序和开发环境。这个“SQL Server 2000 msde2000企业管理器...

    SQL Server 2000 以及sp3补丁安装使用说明文档

    SQL Server 2000 及其 SP3 补丁安装使用说明文档 本文档包含了五个部分的详细安装说明:安装数据库 SQL Server 2000、安装数据库 SQL Server 2000 SP3 补丁、创建远程访问的用户、附件数据库和分离数据库。 一、...

    SqlServer2000 驱动包

    使用这样的驱动包,开发者可以轻松地在Java应用程序中集成对SQL Server 2000的支持,实现数据的读取、写入和查询等功能。 总结来说,"SqlServer2000驱动包"是Java开发人员用来与SQL Server 2000数据库进行交互的...

    SQL Server 2000帮助(中文)

    “MSSQL2000菜鸟进阶教程.chm”这份文档将引导读者从基础到进阶掌握SQL Server 2000的各项功能,包括安装配置、数据库设计、查询语言、安全性设置、备份策略、性能优化等多个方面,是学习和工作中不可或缺的参考资料...

    sqlserver2000驱动包

    SQL Server 2000驱动包是用于与Microsoft SQL Server 2000数据库进行通信的重要组件,尤其在开发环境中,如Eclipse,它扮演着不可或缺的角色。这个驱动包主要包含JDBC(Java Database Connectivity)驱动,使得Java...

    SQL Server Text型字段读取(delphi)

    一直在用ADOQuery读取数据库字段,当遇到SQL Server数据库Text型字段时,一直读取不全,在网上搜索很多遍未解决。试探将asstring 换为 CurValue。成功!

    SQL Server 2000 JDBC驱动的三个Jar包

    为了使Java应用程序能够与SQL Server 2000进行交互,我们需要使用JDBC驱动。JDBC驱动提供了一组Java类和接口,使得Java代码能够通过标准API与不同类型的数据库进行通信。 在SQL Server 2000的JDBC支持中,我们主要...

    SQLServer+ 免安装版

    让软件企业在发布基于SQLServer2000数据库软件的时候,只要把软件打包进入安装包而不需要再单独安装数据库,也不需要另外进行数据库的设置,就如同使用ACCESS数据库一样简单,但却是SQLServer2000这样大中型数据库的...

Global site tag (gtag.js) - Google Analytics