如何独占锁定阻止 CRUD 操作的行

2023-11-21

专家您好 我如何锁定 sql server 中的一行以阻止 CRUD 操作甚至 SELECT。 是否可以? 可串行化隔离级别不会阻止 SELECT。 谢谢


BEGIN TRAN

    SELECT 1
    FROM Table
    WITH (XLOCK, ROWLOCK)

COMMIT TRAN

这样就可以了。

EDIT

正如其他人所指出的,您不能锁定一行以使其不被读取。我知道这样做的唯一方法如下:

WITH (UPDLOCK, TABLOCK)

这是假设 SELECT 语句中从未使用过WITH (NOLOCK)(无论如何都应该避免)。

我对此进行了测试,它会起作用,尽管 TABLOCK 只应在极端情况下使用。当然,如果需要并发性,这是一个糟糕的解决方案,并且需要某种其他形式的锁定。一种方法是更新位列“Available True/False”并且仅读取Available = True 的行。正如 @gbn 建议的那样,READPASTcould与此一起使用。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何独占锁定阻止 CRUD 操作的行 的相关文章

  • 如何在存储过程中实现 sql 搜索功能 (Sql Server 2008)

    我需要编写一个存储过程 该过程将使用 sql server 2008 根据可选参数搜索表 将会有两种模式 基本搜索模式 我们只传递一些文本 高级搜索模式 使用可选参数而不使用 SearchText 为了进行测试 我使用 AdventureW
  • 在 Sql Server 中转换为日期时间 MM/dd/yyyy HH:mm:ss

    如何将给定的日期格式转换为MM dd yyyy HH mm ss 我尝试了下面这个但没有实现 谁能帮我 SELECT CONVERT VARCHAR 20 GETDATE 120 SQL Server 2005及以上版本支持 SELECT
  • 如何从 PostgreSQL 中的时间戳列值提取一天中的时间(或小时)?

    我正在尝试从 PostgreSQL 中的 时间戳 列中提取一天中的时间 这是我的做法 但是 太糟糕了 知道如何做得更好吗 SELECT date part hour date demande text hours date part min
  • 跨多个表进行搜索,并在结果行中显示表名称

    如何构建 SQL 语句以跨多个平面不相关的表运行 并使用选择结果和结果来自的表的名称显示结果 这种情况是这样的 我有几个表 每个表都有相同的列名 这是我从外部各方收到的数据 并将其存储在不同的表中 相同的表看起来像 Table 1 pid
  • 用更轻的解决方案替换完整的 ORM(JPA/Hibernate):推荐的加载/保存模式?

    我正在开发一个新的 Java Web 应用程序 并且正在探索保存数据的新方法 对我来说是新方法 我主要有 JPA 和 Hibernate 的经验 但是 除了简单的情况之外 我认为这种完整的 ORM 可能会变得相当复杂 另外 我不太喜欢和他们
  • 初级SQL部分:避免重复表达式

    我对 SQL 完全陌生 但我们可以说StackExchange 数据浏览器 https data stackexchange com 我只想按信誉列出前 15 位用户 我写了这样的内容 SELECT TOP 15 DisplayName I
  • 为表中的每个组选择前 N 行

    我面临一个非常常见的问题 即 为表中的每个组选择前 N 行 考虑一个表id name hair colour score列 我想要一个结果集 对于每种头发颜色 都能得到前 3 名得分手的名字 为了解决这个问题 我得到了我所需要的Rick O
  • MyBatis:在一个查询中通过注释收集

    我有一个 xml 映射器 一个选择映射器和一个结果映射器 它工作没有问题 但我想使用注释 我的映射器
  • 自加入表

    我有一张像这样的桌子 Employee name salary a 10000 b 20000 c 5000 d 40000 我想获取所有工资高于A工资的员工 我不想使用任何嵌套或子查询 在采访中被问及并暗示是使用自连接 我真的不知道如何实
  • SQL Server 列名区分大小写

    我使用的数据库具有 French CI AS 排序规则 CI 应该代表不区分大小写 但无论如何都是区分大小写的 我试图理解为什么 我断言这一点的原因是 使用 GIVEN 案例设置进行批量插入失败 但使用另一个 Given 案例设置则成功 例
  • 在 SQL 2005+ 中,CLR 存储过程是否优于 TSQL 存储过程?

    我目前的观点是否定的 更喜欢 Transact SQL 存储过程 因为它们是重量更轻且 可能 性能更高的选项 而 CLR 过程允许开发人员进行各种恶作剧 然而最近我需要调试一些写得非常糟糕的 TSQL 存储过程 像往常一样 我发现许多问题是
  • Java JDBC:更改表

    我希望对此表进行以下修改 添加 状态列 varchar 20 日期列 时间戳 我不确定该怎么做 String createTable Create table aircraft aircraftNumber int airLineCompa
  • 如何使用sql作为xml路径('')但保留回车符

    我有下面的代码 select select cast Narrative as Varchar max char 13 from officeclientledger where ptmatter matter and ptTrans 4
  • Google BQ:运行参数化查询,其中参数变量是 BQ 表目标

    我正在尝试从 Linux 命令行为 BQ 表目标运行 SQL 此 SQL 脚本将用于多个日期 客户端和 BQ 表目标 因此这需要在我的 BQ API 命令行调用中使用参数 标志 parameter 现在 我已经点击此链接来了解参数化查询 h
  • SQL Server 2014 安装中缺少 SQL Server Integration Services

    我正在尝试使用 Integration Services 安装 SQL Server 2014 Here https www microsoft com en US download details aspx id 42299是我以前用工具
  • 可以获取SQL Server中当前执行的存储过程的行号吗?

    几年前 我在 Sybase Delphi 环境中工作 使用 BDE 连接到数据库服务器 我们有一个 Delphi 小应用程序 给定当前正在执行的存储过程的名称 它可以告诉您当前正在执行该存储过程的哪一行 这对于调试似乎挂起的存储过程非常有用
  • Android访问远程SQL数据库

    我可以直接从 Android 程序访问远程 SQL 数据库 在网络服务器上 吗 即简单地打开包含所有必需参数的连接 然后执行 SQL 查询 这是一个私人程序 不对公众开放 仅在指定的手机上可用 因此我不担心第三方获得数据库访问权限 如果是这
  • SQL Server 上的语法错误

    这可能是一个愚蠢的语法错误 但我只是继续阅读我的程序 但我无法弄清楚我的错误在哪里 消息 156 第 15 级 状态 1 第 41 行关键字附近的语法不正确 为了 这是我的代码 alter procedure LockReservation
  • Visual Studio 2010 中的数据库设计器

    我需要创建一个全新的 Sql Server 2008 数据库 并希望使用 Visual Studio 2010 Ultimate 中的数据库项目 我已经创建了该项目并在下面添加了一个表格dbo架构 桌子 sql仅以纯文本形式显示 但带有颜色
  • 索引数量越少意味着插入、更新和删除速度更快? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi

随机推荐

  • 有时 console.log 在 log-ios 中显示,有时则不显示

    我跑了react native start在一个终端中 然后react native ios run在另一个 我的初始console log很少表现出来 但有时会表现出来 很多时候 我随机地看到 超出日志消息配额 此进程中的一些消息已被丢弃
  • 如何从监控摄像头录制的视频中读取时间?

    我有一个问题 我必须从监控摄像头录制的视频中读取录制时间 时间显示在视频的左上角区域 下面是显示时间的区域屏幕截图的链接 此外 数字颜色 白色 黑色 在视频播放期间不断变化 http i55 tinypic com 2j5gca8 png
  • 更新 .dbml 文件

    在数据库中进行一些更改后如何更新 dbml 文件 进行更改后没有内置方法可以将 dbml 文件 数据上下文与数据库同步 除了通过删除所有或部分实体并重新拖动它们来重新生成整个 dbml 文件之外 或者按照其他回复的建议使用 sqlmetal
  • Python - 找到最近的时间戳

    我有一个 Python 日期时间时间戳和一个大字典 索引 其中键是时间戳 值是我感兴趣的其他一些信息 我需要尽可能高效地找到索引中最接近时间戳的日期时间 键 目前我正在做类似的事情 for timestamp in timestamps c
  • .net MAUI 背景 vs 背景颜色 - 有什么区别?

    使用 Visual Studio Community Edition 2022 构建 Net MAUI 项目 我尝试搜索官方文档 但没有找到答案 有人可以解释以下内容吗 问题 有什么区别Background and BackgroundCo
  • SQL表连接中ON和WHERE子句的区别

    select e last name e hire date from employees e join employees m on m last name Davies and e hire date gt m hire date se
  • ActionFilterAttribute ninject 注入 - DbContext 已被处置

    我的项目使用通常的存储库模式以及服务和工作单元 所有这些都使用 Ninject 从 NinjectModule 注入依赖项 但我正在尝试从ActionFilterAttribute在我显示的页面布局中注入一些信息 来自数据库 这样我就不需要
  • 使用 JavascriptExecutor 的 Selenium Datepicker

    请告知是否接受使用 Selenium 的取货日期这种方法 WebDriver driver new ChromeDriver driver manage window maximize driver get https www spicej
  • 熊猫的重采样从几个月到几周

    我正在尝试将每月数据下采样为每周数据 并拥有如下所示的月份时间序列数据框 qty PERIOD NAME 2017 09 01 49842 0 2017 10 01 27275 0 2017 11 01 29159 0 2017 12 01
  • 在 Asio 中异步等待,直到套接字可用于读/写

    我想用 Boost Asio 执行以下操作 我有一个套接字 我想注册一个回调 当数据可用于在套接字上读取 写入时调用 但我不希望它实际执行读取 写入操作 基本上 我需要的类似于async read some async write some
  • 尝试在地图函数中添加字段时出现“对象不可扩展”错误

    我尝试使用地图向数组中的项目添加新字段 const newArray oldArray map item gt return item newField Something 我已经尝试过 const newArray oldArray ma
  • Maven:Surefire——干运行?

    有什么办法可以保证干运行吗 会列出哪些测试的东西would运行 而不运行它们 目标是了解在特定配置下哪些测试将在 JBoss AS7 测试套件中运行 Janinko 进行了更改 位于https github com janinko mave
  • Command.ExecuteScalar 始终返回 null,而 Management Studio 中的存储过程运行良好

    我有以下 SQL 存储过程 其中包含一个输入参数和一个输出参数 CREATE PROCEDURE dbo spCanUserEdit username nvarchar 255 AS BEGIN SET NOCOUNT ON DECLARE
  • 垂直居中 UILabel 时忽略上升和下降?

    我使用自动布局将一些标签放置在单元格的垂直中心 文本全部大写 但UILabel有问题时 即使sizeToFit应用后 会在文本下方留下空格 这看起来很像小写 y p 和 q 等字母的尾部 由于我垂直居中 这会导致偏移 意味着文本显示比应有的
  • 如何在 Laravel 中读取 FormData 对象

    我正在尝试将 ajax 提交表单到 Laravel 5 控制器方法 据我所知 在 php 中 您可以定义一个 FormData 对象 将输入字段附加到该对象并将其发送到服务器 您现在可以在其中使用输入字段名称提取值 Like so var
  • 在回溯中没有“引发”的情况下引发异常? [复制]

    这个问题在这里已经有答案了 可能的重复 不要在异常堆栈中显示 Python raise line 内置异常 例如NameError等给我一个回溯到我的代码中发生异常的点 我正在开发一个实用程序模块 它让我感到烦恼 如果使用我的模块的代码引发
  • 在 PHP 中包含文件的最佳方式?

    我目前正在开发一个 PHP Web 应用程序 我想知道以代码仍然可维护的方式包含文件 include once 的最佳方式是什么 通过可维护 我的意思是 如果我想移动文件 很容易重构我的应用程序以使其正常工作 我有很多文件 因为我尝试拥有良
  • 提高 OpenCV HOG 人体检测器的准确性

    我正在一个项目中工作 项目的一部分包括将 OpenCV 的 HOG 人体检测器与摄像机流集成 目前它正在使用相机和基本的 HOG 检测器 CPP detectorMultiScale gt http docs opencv org modu
  • java.lang.NullPointerException: CameraUpdateFactory 未初始化 logcat 异常

    我正在使用 Google 地图 我能够成功创建并显示 Google 地图 现在我想添加CameraUpdate latitude longitude 我用谷歌搜索 找到了一些源代码 但我得到了NullPointerException Log
  • 如何独占锁定阻止 CRUD 操作的行

    专家您好 我如何锁定 sql server 中的一行以阻止 CRUD 操作甚至 SELECT 是否可以 可串行化隔离级别不会阻止 SELECT 谢谢 BEGIN TRAN SELECT 1 FROM Table WITH XLOCK ROW