#c# #asp.net #sql #sql-server-2008 #ssis
#c# #asp.net #sql #sql-server-2008 #ssis
Вопрос:
Я создал пакет, который будет запрашивать SQL Server и возвращать результаты в Excel, этот пакет должен заменять существующие данные в Excel новыми данными при каждом запуске. Но команда удаления таблицы очищает только заголовки таблицы Excel, а не предыдущие данные. Добавление новых данных в лист не удаляет старые данные.
Удаление таблицы Я использую эту команду.
Drop Table `Report`
Go
Создать таблицу :
CREATE TABLE `Report` (
`EmployeeID` Long,
`EmpName` LongText,
`EmpGrp` LongText
)
GO
Пожалуйста, помогите в этом. Как удалить данные из таблицы в Excel.
Комментарии:
1. что вы подразумеваете под в Excel?
2. В первый раз, когда я запускаю этот пакет, он работает отлично. Но я во второй раз запускаю этот пакет, он добавляет новые данные в лист Excel со старыми данными, тогда как я использую команду Drop table для удаления этого листа из Excel, но удаляет только заголовок, а не данные
3. почему вы удаляете таблицу и не используете truncate? и никакого создания не требуется
4. Тогда как добавить новые данные в существующий лист?
Ответ №1:
Вы можете создать файл шаблона, содержащий лист с заголовком, и задача файловой системы копирует его поверх ранее экспортированного файла перед преобразованием потока данных.
Возможно, это решение подойдет для ваших нужд: перезаписать файл Excel в SSIS: обходной путь для диспетчера соединений Excel
Ответ №2:
Одним из способов может быть использование «Задачи сценария» вместо Drop Table для проверки наличия Excel, и если да, то удалите существующий excel.
`
(File.Exists(Dts.Variables["User::DestinationExcelFilePath"].Value.ToString()))
{
File.Delete(Dts.Variables["User::DestinationExcelFilePath"].Value.ToString());
}
Dts.TaskResult = (int)ScriptResults.Success;
`если
Остальные все выполняют тот же процесс, что и вы делаете прямо сейчас. Также обратите внимание, что для свойства DelayValidation потока управления необходимо установить значение True, чтобы код работал должным образом.