2015-12-04 2 views
0

Проблема: определить все пакеты SSIS, которые подключаются к конкретной таблице базы данных на SQL Server.Как каталог служб интеграции запросов

Подробности: на сервер размещено почти 100 пакетов, большинство пакетов огромны по размеру, поэтому с их помощью будет трудно выполнить их вручную с высокой степенью точности.

Есть ли быстрый и автоматический способ сделать это?

Потенциальное решение с использованием SQL Server:

  1. Запрос Каталог Integration Services и получить * .dtsx пакет
  2. Загрузить данные пакета в типа столбца XML/данных
  3. Разбор/запросить пакет для любой ссылки на таблицу конкретной базы данных

Возможно, приложение C# может сделать то же самое?

Я очень благодарен за любую помощь, которая может быть предоставлена.

+0

Я бы предложил попробовать потенциальное решение и задать вопрос, если вы столкнулись с проблемой, что делать. Прямо сейчас ваш вопрос слишком широк для Stack Overflow, который в основном фокусируется на конкретных вопросах, связанных с кодом. – economy

ответ

1

Заслуга Ms SQL Girl: http://www.mssqlgirl.com/editing-published-ssis-package-in-sql-server-2012.html

USE SSISDB 

SELECT pr.name AS [ProjectName] 
    , pr.description AS [ProjectDescription] 
    , pr.last_deployed_time AS [ProjectLastValidated] 
    , pr.validation_status AS [ProjectValidationStatus] 
    , op.object_name AS [PackageName] 
    , op.design_default_value AS [DefaultConnectionString] 
FROM [internal].[object_parameters] op 
INNER JOIN [internal].[projects] pr 
ON pr.project_id = op.project_id 
AND pr.object_version_lsn = op.project_version_lsn 
WHERE op.parameter_name LIKE '%.ConnectionString' 
0

Я бы открыл проект Visual Studio, содержащий все эти пакеты (используя VS), а затем воспользуюсь функцией VS «Найти в файлах» для поиска имени таблицы. Это довольно быстро, и использование поиска «Match whole word» должно всплывать именно так, как вы хотите.

Если у вас еще нет проекта/решения Visual Studio, содержащего эти пакеты, вы, вероятно, должны загрузить их и построить в любом случае, чтобы их можно было поддерживать/поддерживать.

+0

Извините за поздний ответ. В конечном итоге я нашел решение проблемы, которая породила вопрос на этом форуме. Во всяком случае, запрос был предложен в отдельном блоге (см. Ответ выше). –