#sql-server #visual-studio #ssis
#sql-сервер #visual-studio #ssis
Вопрос:
У меня есть задача потока данных, которая берет пару таблиц, объединяет соответствующие данные вместе и выдает некоторые результаты для помещения в индексированную таблицу. В индексированной таблице уже есть данные, от которых я не собираюсь избавляться, и для простоты следует сохранить их существующие ключи. Итак, мне нужно сгенерировать ключ, который начинается с самого высокого значения первичного ключа, уже имеющегося в столбце.
Я нашел сообщение в блоге, которое работает при запуске с любого известного значения, но этот поток данных в конечном итоге будет использоваться в разных базах данных, так что это значение не будет постоянным. Однако это всегда будет максимальное значение столбца, но я не могу найти способ получить это значение с помощью предложенного там компонента script.
Комментарии:
1. есть ли какая-то причина, по которой вы просто не используете столбец identity?
2. Оказывается, я неверно истолковал некоторые ограничения в скрипте; между комментарием Майка и сном на нем я справился просто отлично.
Ответ №1:
Общеизвестно, что подобные вещи сложно выполнить в SSIS, поэтому я стараюсь этого избегать. Вам необходимо:
…приготовьтесь…
-создайте переменную в вашем пакете SSIS для хранения начального значения
-создайте SQL-задачу с параметром, сопоставленным с этой переменной, с направлением вывода и запросом что-то вроде «SET ? = (ВЫБЕРИТЕ MAX (IDValue) ИЗ таблицы)» — знак вопроса является заполнителем для параметра, который сопоставляется с переменной
-используйте переменную в вашем потоке данных — возможно, с преобразованием производного столбца
Надеюсь, это поможет…