Я хочу вызвать sql-запрос/SP для задания sql на сервере ssis с помощью сценария powershell, но не знаю, как это сделать. Я использовал powershell для запуска sql-запросов в базе данных sql, но не для заданий в ssis. Вот что у меня есть до сих пор-
$ssisServer = New-Object -TypeName Microsoft.SQLServer.Management.Smo.Server($name_of_server)
$IntegrationServices = New-Object "Microsoft.SqlServer.Management.IntegrationServices.IntegrationServices" $ssisServer
$catalog = $IntegrationServices.Catalogs[$catalog]
$folder = $catalog.Folders[$folder]
$project = $folder.Projects[$project]
$sqlJob = $ssisServer.JobServer.Jobs[$existing_job_name]
query= " some sql query "
if ($sqlJob) {
$sqlJob.CurrentRunStatus()
# here I need to run a query on the job
}
Запрос может заключаться в том, чтобы получить сведения о задании или выполнить какое-либо действие над ним. Также этого достаточно, поскольку мы просто указываем здесь имя сервера $sqlJob = $ssisServer.JobServer.Jobs[$existing_job_name]
, чтобы получить задание, которое находится в определенной папке->проект->задание? Я еще не мог попробовать это и не нашел много ресурсов на нем. Пожалуйста, помогите мне с работой.
Непонятно, что вы ищете для меня. Пример в вашем вопросе уже работает для вас, и вы хотите добавить запрос к данным задания? Существует несколько способов получить объект задания, но это может зависеть от того, какой тип аутентификации вы выполняете и т. д., поэтому лучше всего начать с некоторого работающего кода. Попробуйте запустить код из своего примера и добавить дополнительную информацию о том, какие данные возвращает ваша задача.
Для вашего второго абзаца может быть проще получить конкретную работу, используя поставщика сервера sql, например
$sqlJob = Get-ChildItem SQLSERVER:\SSIS\localhost\Default\Catalogs\SSISDB\Folders\MyFolder\Projects\MyProject\Packages\ | Where Name -eq 'MyPackage.dtsx'
.