使用 SQL Server 选择进行更新

2023-11-24

我正在使用具有隔离级别的 Microsoft SQL Server 2005 数据库READ_COMMITTED and READ_COMMITTED_SNAPSHOT=ON.

现在我想使用:

SELECT * FROM <tablename> FOR UPDATE

...以便其他数据库连接在尝试访问同一行“FOR UPDATE”时阻塞。

我试过:

SELECT * FROM <tablename> WITH (updlock) WHERE id=1

...但这会阻止所有其他连接,即使选择“1”以外的 id 也是如此。

执行以下操作的正确提示是SELECT FOR UPDATE众所周知的 Oracle、DB2、MySql?

编辑 2009-10-03:

这些是创建表和索引的语句:

CREATE TABLE example ( Id BIGINT NOT NULL, TransactionId BIGINT, 
    Terminal BIGINT, Status SMALLINT );
ALTER TABLE example ADD CONSTRAINT index108 PRIMARY KEY ( Id )
CREATE INDEX I108_FkTerminal ON example ( Terminal )
CREATE INDEX I108_Key ON example ( TransactionId )

许多并行进程执行此操作SELECT:

SELECT * FROM example o WITH (updlock) WHERE o.TransactionId = ?

编辑2009-10-05:

为了更好地概述,我在下表中写下了所有尝试过的解决方案:



mechanism              | SELECT on different row blocks | SELECT on same row blocks
-----------------------+--------------------------------+--------------------------
ROWLOCK                | no                             | no
updlock, rowlock       | yes                            | yes
xlock,rowlock          | yes                            | yes
repeatableread         | no                             | no
DBCC TRACEON (1211,-1) | yes                            | yes
rowlock,xlock,holdlock | yes                            | yes
updlock,holdlock       | yes                            | yes
UPDLOCK,READPAST       | no                             | no

I'm looking for        | no                             | yes
  

最近我有一个死锁问题因为 Sql Server 锁定的数量超出了必要的数量(页面)。你真的无法做任何事情来反对它。现在我们正在捕获死锁异常...我希望我有 Oracle。

编辑: 同时我们正在使用快照隔离,它解决了许多但不是全部问题。不幸的是,为了能够使用快照隔离,必须得到数据库服务器的允许,这可能会在客户站点引起不必要的问题。现在,我们不仅捕获死锁异常(当然,这仍然可能发生),而且还捕获快照并发问题,以从后台进程重复事务(用户无法重复)。但这仍然比以前表现得好得多。

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

使用 SQL Server 选择进行更新 的相关文章

  • MySQL:你能指定一个随机限制吗?

    有没有办法在 SQL MySQL 中随机化限制数字 我希望能够做的是在查询中获取随机数量的结果以在插入子查询中使用 而无需任何服务器端脚本 我希望能够作为假设说明运行的查询是 SELECT id FROM users ORDER BY RA
  • 如何在SQL Server数据库表列中存储图像[重复]

    这个问题在这里已经有答案了 我有一张名为FEMALE在我的数据库中 它有ID as Primary Key 它有一个Image column 我的问题是如何使用 SQL 查询存储图像 尝试一下 insert into tableName I
  • 使用绑定和空值命中 Oracle 索引的最佳查询

    我有一个表 该表在多个列上有一个索引 其中许多列可以为空 CREATE UNIQUE INDEX UX MYTABLE A B C D E ON MYTABLE A B C D E 现在 我在 C 代码中尝试检查该表并精确命中索引 对于每个
  • 在单个更新语句上使用事务

    我在工作中为一些 SP 配音 我发现编写代码的人在单个更新语句上使用了事务 如下所示 begin transaction single update statment update table whatever with whatever
  • MySQL 子查询返回多行

    我正在执行这个查询 SELECT voterfile county Name voterfile precienct PREC ID voterfile precienct Name COUNT SELECT voterfile voter
  • 是否可以使用“WHERE”子句来选择SQL语句中的所有记录?

    晚上好 我很好奇是否可以在 SQL 语句中创建一个 WHERE 子句来显示所有记录 下面一些解释 随机 SQL 语句 Java JSP示例 正常情况 String SqlStatement SELECT FROM table example
  • 具有 LINQ 支持的最完整的 ORM?

    我正在寻找一个提供完整或接近完整的 LINQ 支持的 ORM LINQ 到 SQL 支持 LINQ 内部的所有内容 Contains Math Log 等 在不创建新数据上下文的情况下无法预先加载关系属性 ADO NET 实体框架 糟糕的
  • 从存储过程中的动态 SQL 获取结果

    我正在编写一个存储过程 需要在过程中动态构造 SQL 语句以引用传入的表名称 我需要让这个 SQL 语句返回一个结果 然后我可以在整个过程的其余部分中使用该结果 我尝试过使用临时表和所有内容 但我不断收到一条消息 提示我需要声明变量等 例如
  • 如何打印Oracle中过程的定义?

    oracle中有没有办法查看过程的结构是什么 我正在尝试记录并运行程序 并希望将实际的程序结构存储在我的日志中 您可以查询ALL SOURCE table SELECT text FROM all source WHERE owner lt
  • 使用MySQL计算单个表中借方和贷方的余额

    下面的 MySQL 表包含带有关联金额的借方或贷方 操作 如何选择具有非零 余额 的所有 CLIENT ID 我尝试将表连接到自身以计算所有借方和贷方总额 但有些东西无法正常工作 CLIENT ID ACTION TYPE ACTION A
  • SQL Server 2005 - 字符编码问题

    我正在尝试将此值 llko 存储到 SQL Server 中的列中 该列是 nvarchar 1000 插入语句如下所示 N llko 但里面的数据仍然显示为 a llkoa 关于我可以尝试什么的任何想法 EDIT 我刚刚意识到我已经更改了
  • SQL Server Express 到 .mdf 文件的连接

    两部分问题 我使用 VS 2015 Update 3 创建了一个 ASP NET MVC 5 应用程序 我在本地计算机上完成了该项目 突然 我无法再通过 SQL Server 对象资源管理器连接到 mdf数据库文件并出现以下错误 无法打开数
  • Quartz.NET 设置 MisfireInstruction

    我正在使用 Quartz NET 在 C 中工作 并且在 CronTrigger 上设置失火指令时遇到问题 我正在运行安装了 Quartz DB 的 SQL 后端 我有以下代码 可以很好地创建作业和运行调度程序 IScheduler sch
  • 如果执行没有事务的删除语句,是否会删除部分内容?

    如果表myTable包含100000000条记录 我执行DELETE FROM myTable 没有开始交易并且出现问题 例如服务器电源故障 会删除一些记录吗 否 如果数据库引擎符合ACID http en wikipedia org wi
  • 消息 102,级别 15,状态 1,第 1 行“ ”附近的语法不正确

    我试图从临时表中查询 但不断收到此消息 Msg 102 Level 15 State 1 Line 1 Incorrect syntax near 有人能告诉我问题是什么吗 是因为要转换吗 查询是 select compid 2 conve
  • SQL Server 转换选择一列并将其转换为字符串

    是否可以编写一条从表中选择列并将结果转换为字符串的语句 理想情况下 我希望有逗号分隔的值 例如 假设 SELECT 语句看起来像这样 SELECT column FROM table WHERE column lt 10 结果是一列包含值的
  • 外键引用多个表

    我有4张桌子 A ida name B ida B specific stuff C ida C specific stuff D ida D specific stuff 我希望另一个表 E 可以仅引用 B 或 C 而不是 D 我可以在其
  • Spring Boot MSSQL Kerberos 身份验证

    目前在我的春季靴子中application properties文件中 我指定以下行来连接到 MSSql 服务器 spring datasource url jdbc sqlserver localhost databaseName spr
  • 案例陈述以确定我是否应该结合

    我目前想做某种条件联合 给出以下示例 SELECT age name FROM users UNION SELECT 25 AS age Betty AS name 假设我只想在 用户 计数 gt 2 时合并第二个语句 否则不合并两者 总之
  • 从一个sql服务器选择到另一个sql服务器?

    我想将一台服务器 Data Old S1 中的一个表 T1 在 DB1 中 中的数据选择到另一台服务器 Data Latest S2 中的另一个表 T2 在 DB2 中 中的数据 我怎样才能做到这一点 请注意服务器的命名方式 查询也应该考虑

随机推荐

  • 如何在 JasperReports 中使用条件 TextField?

    我想要一对取决于值的文本字段 并且 y 值应根据空白空间进行调整 当值为 0 我想隐藏文本字段 IE 我想隐藏staticText和textField如果参数red等于 0 并将蓝色值向上移动 在下面的 jrxml 代码中
  • RVM 的 Rails 脚本分段错误

    我遇到分段错误 应该which ruby返回 usr local bin maletor rails generate mailer ContactMailer Users maletor rvm gems ruby 1 9 2 p0 ge
  • Elixir - https URL 的问题

    我是 Elixir 和 Erlang 的新手 在访问 https URL 时遇到一些问题 我已经尝试过 Elixir 特定的HTTP选项和 Erlang 的 inets module 因此 从 iex 控制台 Interactive Eli
  • 性能差异:std::accumulate vs std::inner_product vs Loop

    今天 我想分享一些在我尝试实现这个简单操作时令我震惊的事情 我发现执行相同操作的不同方法 通过使用std inner product 实现谓词并使用std accumulate功能 使用 C 风格的循环 我想通过使用 Quick Bench
  • ggplot2 条形图中的订单条形图

    我正在尝试制作一个条形图 其中最大的条形最接近 y 轴 最短的条形最远 所以这有点像我的桌子 Name Position 1 James Goalkeeper 2 Frank Goalkeeper 3 Jean Defense 4 Stev
  • CKEditor 和转义元素

    我用过CKEditor用于更新CMS我的网站上的内容 我还使用 FontAwesome 其中包括一组精美的图标 可以像这样显示 i class icon envelope i 问题是 CKEditor 逃脱了这个i标签在客户端 我在源模式下
  • html5 window.localStorage.getItem Item 获取以以下开头的键

    我怎样才能使用 window localStorage getItem 指定 localstarage 中以字符串开头的项目 QQ 在我的例子中 密钥可以是 QQ 3位数字 所以我只需要指定它以字符串开头 QQ 您不需要 获取所有项目并单独
  • SSRS在报告中显示没有记录,但查询返回结果

    我有一个关于 SSRS 的问题 我正在使用 MSSQL Server Management Studio 2012 和 BIDS Visual Studio 2008 进行报表设计 我有一个包含一些多值参数的报告和一个存储过程 其中返回记录
  • 数十亿行的最佳数据存储

    我需要能够存储数十亿条记录 一年约 30 亿 月 的少量数据 大约 50 75 字节 唯一的要求是对具有相同 GUID 的所有记录进行快速插入和快速查找 并且能够从 net 访问数据存储 我是一名 SQL Server 人员 我认为 SQL
  • 在 Pyside 中,为什么在处理信号后发出一个 > 0x7FFFFFFF 的整数会导致“OverflowError”?

    我正在尝试使用具有 0 2 32 1 范围内的大整数的信号 槽 我发现了一些奇怪的事情 一旦我发出 gt 7FFFFFFF 边界 我就会抛出 OverflowError 异常after插槽已运行 如果我或 QT 在另一种语言 如 C 或 C
  • webpack html-loaders 小写 Angular 2 内置指令

    我使用 html loader 来加载我的 html 模板 并使用 file loader 来加载模板中的图像 这在开发中运行得很好 但是当我运行 build prod 并运行输出时 我收到模板解析错误 看来所有 Angular2 内置指令
  • 雅虎财经股票报价API

    有没有办法从 yahoo api 获取 json 格式的历史股票价格 我想使用 REST 因为它更轻量 用一个具体的例子来跟进 user586050 的答案 您可以使用YQL此请求的 yahoo finance historical 数据表
  • 动态添加自定义元素到 DOM 后,如何让 Aurelia 渲染我的视图?

    当在 DOM 中创建自定义元素并添加实现 aurelia 框架可绑定的相应视图模型时 我的视图呈现完美 DOM 中的自定义元素如下
  • 是否可以对字符串类型使用两个记录助手?

    我创建这个助手是为了向string type type AStringHelper record helper for string function Invert string overload function InvertMe str
  • 附近连接 2.0 中的错误代码

    我一直在尝试新的安卓 附近连接 v2 0API 我的大多数设备现在可以在大多数时间相互通信 但我也得到了很多错误代码尝试连接时返回 检查status getStatusCode 在我的程序中 我可以看到以下返回码 STATUS ALREAD
  • 如何在 Objective-C 中获取用户的语言环境?

    我正在开发Mac OS X的应用程序 我想根据应用程序用户的语言区域 英语 西班牙语等 更改指示内容 如何获取使用哪种语言的信息 NSLog localeIdentifier NSLocale currentLocale localeIde
  • 为什么 System.Enum 不是值类型?

    我编写了以下代码进行一些测试 输出超出了我的预期 public enum Days Saturday Sunday Monday Tuesday Wednesday Thursday Friday Console WriteLine typ
  • MySQL:如何获取上次插入数据库的时间戳

    如何检查我在数据库中写入的最后一次 时间戳 是什么时候 无论我插入到哪个数据库表中 只需使用这个 SQL SHOW TABLE STATUS 并检查更新时间 column
  • JavaScript 算法确定平板电脑的方向

    我们正在构建一个为平板电脑开发的 HTML5 JavaScript 应用程序 我们希望以不同的方式在横向和纵向上布局我的屏幕 最初 我们捕获方向变化通知 并跟踪当前方向 通常报告为 0 90 90 或 180 度 请参阅这个问题 不幸的是
  • 使用 SQL Server 选择进行更新

    我正在使用具有隔离级别的 Microsoft SQL Server 2005 数据库READ COMMITTED and READ COMMITTED SNAPSHOT ON 现在我想使用 SELECT FROM