Я работаю над проектом, где мне нужно выполнять поиск на сервере хранилища данных в Integration Services. Моя проблема в том, что мне нужно иметь возможность изменить, к какой базе данных я выполняю поиск. Базы данных конструктивно идентичны.SSIS Поиск нескольких идентичных баз данных
Я решил эту проблему с помощью компонента сценария до того, где для каждой строки, если идентификатор базы данных изменился, изменения соединения, например, ниже
try {
if (databaseNr != Row.DatabaseNr) {
try {
databaseNr = Row.DatabaseNr;
currentCatalog = "db" + Row.DatabasNr;
connection.ChangeDatabase(currentCatalog);
} catch (Exception e) {
ComponentMetaData.FireWarning(0, ComponentMetaData.Name, e.Message, "", 0);
}
}
string command = "SELECT Id, Name, Surname FROM [" + currentCatalog + "].[TableName] WHERE Id = '" + Row.OrderID + "'";
Но это позволит сэкономить мне много хлопот, если это было возможно с помощью компонента lookup.
Так что мой вопрос: возможно ли каким-либо образом использовать данные столбцов, чтобы изменить базу данных для выполнения поиска с помощью компонента Lookup?
Благодарен за любую помощь!
ли базы данных на одном сервере? В этом случае вы можете динамически создать запрос поиска вне потока задач. – Ako
Да, базы данных находятся на одном сервере. Я не совсем уверен, как это возможно, не могли бы вы объяснить дальше? – August
Помогите мне понять: ваш исходный запрос имеет некоторый идентификатор, чтобы указать, в каком каталоге находятся данные. В этих каталогах есть согласованные объекты (вероятно, у вас есть физически сегментированные клиенты по каталогу, чтобы предотвратить близость данных), и вам нужно запустить некоторый запрос через все они (возможно, отчет о выставлении счетов). Это точно? Как спросил Ако, возможно ли, что Client20 вдруг накапливает так много данных, что вам нужно подтолкнуть их к своему серверу? – billinkc