3 массива ForEach L oop SQL Запрос - PullRequest
0 голосов
/ 04 апреля 2020

У меня есть SQL Сервер, SQL База данных и массив Company, для которого мне нужно запустить forEach L oop.

Я могу сделать это с одним массивом значений, но у меня есть НЕТ идеи, как это сделать для нескольких массивов, которым требуется информация из других массивов

Каждая позиция в массиве соответствует информации о других. т. е. Company1 использует DB01 с базой данных AR_Agency1, Company2 использует DB02 и базу данных AR_Agency2 (см. массив ниже).

Пример:

$Company = (“Company1″,”Company2″,”Company3″,”Company4″,”Company5”)
$DatabaseServer = (“DB01”, “DB02”, “DB03”, “DB04”, “DB02”)
$Database= (“AR_Agency1”, “AR_Agency2”, “Agency3”, “Agency4”, “Agency5”)
#SQL Query
$Query = ‘UPDATE tblAsyncJobQueue SET InactiveUntil = NULL’

Так что я хочу сделать что-то вроде этого

ForEach ($company in $companies) {
#Invoke-Sqlcmd -ServerInstance $DatabasesServer -Database $Database -Query $Query

}

Конечное состояние Мне нужно выполнить запрос для каждой базы данных компании.

1 Ответ

0 голосов
/ 04 апреля 2020

Как уже отвечали на Powershell.org, таблица ha sh может работать. Для простых рабочих нагрузок проще использовать индексированные циклы, а не foreach.

Поскольку вся опубликованная информация для компании, сервера и базы данных находится в одном месте, доступ к n-й компании означает также n-й сервер и n-ю базу данных. Доступ к элементам массива осуществляется через нотацию [], например,

for($i=0; $i -lt $Company.Length; ++$i) {
  write-host $("Process {0} / {1} / {2}" -f $company[$i], $databaseserver[$i], $database[$i])
}

# Output
Process Company1 / DB01 / AR_Agency1
Process Company2 / DB02 / AR_Agency2
Process Company3 / DB03 / Agency3
Process Company4 / DB04 / Agency4
Process Company5 / DB02 / Agency5
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...