栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 面试经验 > 面试问答

选择行并更新相同的行以进行锁定?

面试问答 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

选择行并更新相同的行以进行锁定?

使用OUTPUT投票表决Cade Roux的答案:

UPDATe #tbl   SET locked = 1OUTPUT INSERTED.* WHERe id IN (SELECT TOP 1 id     FROM #tbl    WHERe locked = 0 ORDER BY id)鈥�

之前:


这是我可以想到的使用临时表的少数情况之一:

ALTER PROCEDURE temp_table_testASBEGIN   SELECt TOP 5000 *      INTO #temp_test     FROM your_table    WHERe locked != 1 ORDER BY ?   UPDATe your_table      SET locked = 1    WHERe id IN (SELECT id FROM #temp_test)   SELECt *     FROM #temp_test   IF EXISTS (SELECt NULL     FROM tempdb.dbo.sysobjects    WHERe ID = OBJECT_ID(N'tempdb..#temp_test'))   BEGIN     DROP TABLE #temp_test   ENDEND

这:

  1. 获取所需的行,将其填充到本地临时表中
  2. 使用临时表更新要“锁定”的行
  3. 临时表中的SELECT可以为您提供结果集输出
  4. 删除临时表,因为它们用于该会话


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/614318.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号