当前位置: 首页 > 面试题库 >

有没有办法同时选择和更新行?

淳于禄
2023-03-14
问题内容

我想根据一个简单的标准更新一组行,并获取已更改的PK列表。我以为我可以做这样的事情,但担心可能出现的并发问题:

SELECT Id FROM Table1 WHERE AlertDate IS NULL;
UPDATE Table1 SET AlertDate = getutcdate() WHERE AlertDate IS NULL;

如果将其包装在事务中,是否会发生任何并发问题?还是有更好的方法来做到这一点?


问题答案:

考虑查看OUTPUT子句:

USE AdventureWorks2012;  
GO

DECLARE @MyTableVar table(  
    EmpID int NOT NULL,  
    OldVacationHours int,  
    NewVacationHours int,  
    ModifiedDate datetime);

UPDATE TOP (10) HumanResources.Employee  
SET VacationHours = VacationHours * 1.25,  
    ModifiedDate = GETDATE()   
OUTPUT inserted.BusinessEntityID,  
       deleted.VacationHours,  
       inserted.VacationHours,  
       inserted.ModifiedDate  
INTO @MyTableVar;

--Display the result set of the table variable.  
SELECT EmpID, OldVacationHours, NewVacationHours, ModifiedDate  
FROM @MyTableVar;  
GO  
--Display the result set of the table.  
SELECT TOP (10) BusinessEntityID, VacationHours, ModifiedDate  
FROM HumanResources.Employee;  
GO


 类似资料:
  • 问题内容: 由于某些性能原因,我试图找到一种仅选择所选节点中同级节点的方法。例如, 如果选择了inner1节点,是否可以访问其兄弟节点? 问题答案: 好吧…确定…先拜访父母,再拜访孩子。 或者…使用jQuery: 编辑:Cletus一如既往地鼓舞人心。 我进一步挖掘。这就是jQuery本质上如何获得兄弟姐妹的方式:

  • 由于TypeScript是强类型的,因此简单地使用来检查和听起来是不对的。 TypeScript是否有任何专门的函数或语法糖对此?

  • 问题内容: 请考虑以下表格: 部 员工 编写查询以返回人员总数为4或更多的那些部门的雇员的empname和deptname列。记录应按姓氏的字母顺序返回 这是我的看法: 您将如何对此进行改进? 问题答案: 这比较短,而且执行速度可能也更快 从分组开始。您不需要内部查询中的COUNT。然后,联接两个表只是为了获得名称。 *之所以使用 *INNER JOIN, 是因为一旦计数完成,我们已经知道 员工存

  • 问题内容: 我正在构建带有一些文本元素(例如选项卡名称)的HTML UI,这些文本元素在被选中时看起来很糟糕。不幸的是,对于用户来说,双击选项卡名称非常容易,该名称在许多浏览器中都是默认选择的。 我也许可以用JavaScript技巧解决这个问题(我也想看看那些答案),但是我真的希望CSS / HTML中的某些功能可以直接在所有浏览器中使用。 问题答案: 在大多数浏览器中,可以使用CSS来实现: 对

  • 我有一个用于验证字符串的方法,我希望该方法返回一个承诺,因为正在运行的验证可能是异步的。然而,我遇到的问题是性能问题,我希望在可能的情况下在相同的事件循环中解决Promission(例如:当没有异步验证要做时),但我希望接口保持一致(例如:始终返回Promission)。 下面的简化代码示例说明了我正在尝试的操作,但是它会导致前面提到的性能损失,因为即使可以同步执行验证,它仍然等待下一个事件循环来

  • 在pygame中,是否有任何方法可以在面具内将某些东西blit到屏幕上。例如:如果你有一个遮罩,除了左上角和全黑图像外,所有的位都被设置为1,而不改变图像,你能保持左上角(和遮罩一样)清晰吗?只有更新一个掩码(而不是一个rect)才有助于提高效率。