Я обнаружил, что у меня есть электронная таблица Excel, содержащая около 3000 строк данных, которые представляют собой либо дополнения, либо изменения данных, которые мне нужно внести в таблицу SQL.Как вы можете себе представить, это слишком много, чтобы справиться вручную.По ряду не зависящих от меня причин я не могу просто использовать пакет служб SSIS или другой более простой метод для внесения этих изменений в базу данных.Единственный вариант, который у меня есть, - это создание сценариев SQL, которые будут вносить изменения, представленные в электронной таблице, в MS SQL 2005.
У меня нет абсолютно никакого опыта в автоматизации Office или VSTO.Я пытался смотреть в Интернете, но большинство увиденных мной руководств меня немного смущает.
Итак, я подумал, что я бы использовал .NET и VSTO для итерации по рядам данных.(или используйте LINQ, в зависимости от того, что имеет смысл) и определите, является ли данный элемент вставкой или элементом обновления.На листе есть цветное выделение, чтобы показать дельту, поэтому я полагаю, что я мог бы использовать это, или я мог бы искать некоторые ключевые данные, чтобы установить, существует ли запись.Как только я установлю, с чем имею дело, я могу вызвать методы, которые генерируют оператор SQL, который будет либо вставлять, либо обновлять данные.Вставки были бы чрезвычайно простыми, и я мог бы использовать дельта-подсветку, чтобы определить, какие поля нужно обновить для элементов обновления.
Я бы согласился либо с выводом SQL в файл, либо даже с добавлением тестаSQL для данной строки в последней ячейке этой строки.
Любое направление к какому-либо образцу кода, примерам, инструкциям или тому, что приведет меня в правильном направлении, будет наиболее ценно.Я не требователенЕсли есть какой-то инструмент, о котором я не знаю, или способ использования существующего инструмента, о котором я не задумывался для выполнения основной задачи генерации SQL для выполнения этой задачи, то я полностью за него.
Если вам нужна любая другая информация, не стесняйтесь спрашивать.
Приветствия,
Стив