У меня нет эксперта в силовой оболочке. Мне нужен скрипт / подход, который обрабатывает следующее требование.
У меня есть список файлов в папке и имена файлов, как показано ниже.
001_File.sql
002_File.sql
003_File.sql
004_File.sql
Также у меня есть таблица на сервере sql, в которой хранится информация об имени файла.
TableName : исполняемый файл со столбцом FileName.
002_File.sql
004_File.sql
Мое требование - прочитать файлы, которые доступны в папке, но отсутствуют в таблице .
У меня есть только для чтения файлов:
001_File.sql
003_File.sql
Теперь мне нужно выполнить эти два файла в последовательном порядке в рамках одной транзакции на SQL Server. Как мне нужно откатить все транзакции, если произошла ошибка.
На данный момент я написал что-то вроде оболочки питания.
$QueryResult = Invoke-Sqlcmd -ServerInstance 'MyServer' -Database 'MyDb' -Query "SELECT DISTINCT FNames from TableName"
Get-ChildItem "E:\Testing\" -Filter *.sql | Sort-Object $_.Name|
Foreach-Object {
$FileFullpath= $_.FullName
Write-Host $FileFullpath
$FileName = $_.Name
Write-Host $FileName
if(!$QueryResult.FName.Contains($FileName))
{
invoke-sqlcmd -inputfile $FileFullpath -serverinstance "servername\serverinstance" -database "mydatabase"
}
}
Пожалуйста, предложите мне какой-нибудь сценарий.
Вызовы:
- Как читать файлы в последовательном порядке, так как они имеют начальные нули. Будет ли сортироваться указанный выше `Sort-Object $ _. Name '?
- Как выполнить весь список файлов за одну транзакцию.
Спасибо