sql - 使用powershell——如何防止SQL访问同一条记录
问题描述
我想运行多个 powershell 实例来从 Exchange 收集数据。在 powershell 中,我使用 invoke-sqlcmd 从 powershell 运行各种 SQL 命令。
SELECT TOP 1 SmtpAddress FROM [MMC].[dbo].[EnabledAccounts]
where [location] = '$Location' and Script1 = 'Done' and (Script2 = '' or
Script2 is null)
运行多个脚本时,我看到两个脚本都访问同一记录。我知道有一种方法可以更新记录,锁定它,但不知道如何写出来。TIA:-)
解决方案
数据库管理系统(我假设是 SQL Server)将为您处理争用。这意味着,如果您有两个会话尝试更新同一组记录,SQL Server 将阻止一个会话,而另一个会话完成。你不需要做任何事情来明确地做到这一点。也就是说,如果您将多个更新作为一个单元应用,那么在事务中运行更新是个好主意;隐式事务中发生单个更改。以下线程更多地讨论了使用Invoke-SqlCmd
.
推荐阅读
- python - Selenium 未在发现网站登录时单击“登录”按钮
- python - pip install pymsgbox offline 总是失败
- c++ - 如何阅读 C++ 位域定义的语法?
- java - Android 最可靠的数据压缩算法是什么?
- sql-server - 如何在 SQL Server 中编写触发器主体
- java - 您可以混合使用抽象数据类型吗?例如地图的优先队列?
- php - 另一个 PHP 中的 PHP
- laravel-dusk - Laravel 8 Dusk:使用 Jetstream 和 Inertia JS 测试登录不起作用
- php - Apache2 RewriteRule 在图像 docker.io/library/php:7.4-apache 的容器中不起作用
- kubernetes - Prometheus Operator:无法访问 Prometheus 实例