Использование powershell - как предотвратить доступ SQL к одной и той же записи - PullRequest
0 голосов
/ 24 апреля 2018

Я хочу запустить несколько экземпляров powershell для сбора данных с Exchange.В powershell я использую invoke-sqlcmd для запуска различных команд SQL из powershell.

SELECT TOP 1 SmtpAddress FROM [MMC].[dbo].[EnabledAccounts]
where [location] = '$Location' and Script1 = 'Done' and (Script2 = '' or 
Script2 is null)

При запуске более одного сценария я вижу, как оба сценария обращаются к одной и той же записи.Я знаю, что есть способ обновить запись, заблокировать ее, но не знаю, как ее записать.ТИА: -)

1 Ответ

0 голосов
/ 24 апреля 2018

Система управления базами данных (я предполагаю, что SQL Server) будет обрабатывать конфликты за вас.Это означает, что если у вас есть два сеанса, пытающихся обновить один и тот же набор записей, SQL Server заблокирует один сеанс, в то время как другой завершит работу.Вам не нужно ничего делать, чтобы сделать это явным образом.Тем не менее, это хорошая идея, чтобы запустить ваше обновление в транзакции, если вы применяете несколько обновлений как один блок;единственное изменение происходит в неявной транзакции.В следующем потоке больше говорится о транзакциях, использующих Invoke-SqlCmd.

Множественные транзакции Invoke-SqlCmd и Sql Server

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...