Задачи сценария SSIS теряют код

У меня возникает очень странная проблема, из-за которой очищается код задачи сценария. Мне удалось протестировать на 2-3 разных машинах. Мы запускаем предварительную версию SSDT 15.4. Шаги по воспроизведению были следующими.

  1. Создайте задачу сценария внутри контейнера цикла foreach.
  2. Создайте комментарий в задаче скрипта.
  3. Измените или добавьте отображение переменных в foreach.
  4. Сохранить пакет.
  5. Закройте пакет.
  6. Откройте пакет.
  7. Откройте задачу скрипта, и комментарий исчезнет.

В качестве последней попытки добиться успеха я обновился до 15.5.1, но проблема все еще существует.


person DataNerd    schedule 05.02.2018    source источник
comment
Не могу дублировать. Куда вы пишете комментарий? В 1_?   -  person Jacob H    schedule 05.02.2018
comment
У меня тоже были задачи сценария, которые теряли код. Ваши шаги не такие, как у меня (я потерял фактический код). Я не могу подтвердить версию, так как я там больше не работаю.   -  person ColdSolstice    schedule 06.02.2018
comment
Это может показаться глупым, но уверены ли вы, что нажимаете «ОК» в задаче сценария после редактирования и закрытия самого сценария? Если вы нажмете «Отмена», изменение скрипта не будет сохранено.   -  person Aaron Dietz    schedule 06.02.2018
comment
Да, я нажимаю ОК. Я использовал просто комментарий в качестве демонстрации, поэтому мне не пришлось вставлять много кода. Мы обнаружили, что вы должны быть уверены, что находитесь в режиме совместимости с SQL 2016 в проекте SSIS. Измените свойство Project TargetServerVersion на SQL Server 2016.   -  person DataNerd    schedule 06.02.2018
comment
У меня тоже такая странная проблема. Я до сих пор не понимаю, в чем причина этого. Прямо сейчас я сделал резервную копию, и всякий раз, когда код исчезает, я просто восстанавливаю код, когда его нет. очень расстраивает.   -  person Ranjith Varatharajan    schedule 21.02.2018
comment
К сожалению, это обычная проблема, которая возникает после BIDS (если я правильно помню). Насколько мне известно, это все еще функция SSDT 2017. Это не решение, но я рекомендую всегда использовать какое-то управление версиями. Таким образом, если сценарий утерян, вы можете его восстановить.   -  person Larnu    schedule 21.02.2018
comment
Вы пробовали нажать кнопку сохранения в окне редактора скриптов перед его закрытием?   -  person Hadi    schedule 21.02.2018
comment
Версия для Windows? (старт-бег винвер)   -  person billinkc    schedule 21.02.2018
comment
Да, кнопка сохранения нажата. Многие другие смогли воспроизвести. Версия для Windows - 10. Но это не проблема операционной системы, это проблема SSDT в Visual Studio. У меня есть открытый голосовой билет пользователя, который получает несколько голосов и находится на рассмотрении. nofollow feedback. azure.com/forums/908035-sql-server/suggestions/   -  person DataNerd    schedule 22.02.2018
comment
@DataNerd я проголосовал за ваш запрос   -  person Yahfoufi    schedule 22.02.2018
comment
Я тоже долгое время боролся с утерянным кодом скрипта. В настоящее время я могу воспроизвести его на чистой * Win 8.1 с новейшими версиями VS2017, SSDT2017, VSTA2017. (* ну почти чистая с использованием VS 'TotalUninstaller' во всех предыдущих версиях).   -  person Martin Thøgersen    schedule 20.08.2018
comment
Кроме того, я попытался перейти на TargetServerVersion = 'SQL server 2016' в свойствах проекта. Это заставляет компонент сценария использовать Microsoft Visual C # 2015, поэтому я также установил VSTA2015. Проблема сохраняется даже в новых проектах.   -  person Martin Thøgersen    schedule 20.08.2018
comment
Может это быть связано с антивирусом, блокирующим запись на диск? (В конце концов, это двоичный код.)   -  person Martin Thøgersen    schedule 20.08.2018
comment
Это не проблема антивируса. Вы можете отключить все, и проблема не исчезнет. Пока что это ошибка, которую Microsoft не исправила в нескольких версиях.   -  person DataNerd    schedule 20.08.2018


Ответы (3)


Если закрыть / отменить форму редактора задач сценария в Visual Studio после редактирования кода, код не будет сохранен. Это произойдет, даже если код был сохранен в другом редакторе Visual Studio - в том, где вы редактируете код.

Вы ДОЛЖНЫ нажать «ОК», чтобы сохранить код.

person RyboTech    schedule 19.05.2020
comment
Это было сделано, но все же привело к потере кода. - person DataNerd; 20.05.2020

Если в скрипте есть ошибка, он не сохраняется. Проверьте свой скрипт на наличие ошибок в меню Build / Run Code Analysis on Solution или нажав Alt + F11.

person user8333540    schedule 27.03.2018
comment
Проблема не в этом. Проблема воспроизводима. Это происходит для задач сценария в контейнере foreach. Не уверен в деталях, все ли это контейнеры или только для каждого. Я отправил за него голос пользователя с уже 32 голосами "за". feedback.azure.com/ форумы / 908035-sql-server / предложения / - person DataNerd; 29.03.2018

У меня было нечто подобное. Когда я импортировал пакеты в SQL Server, весь код удалялся. Для нас оказалось, что SSMS незаметно удаляет код с несовместимой версией DTS. SSMS v18 удалял скрипты, созданные с помощью DTSv14. Как только я открыл их в новой версии Visual Studio, переместил один блок на 1 пиксель, затем сохранил, он изменил пакет на DTSv15, который затем был импортирован с помощью SSMS v18.

Просто для проверки я попытался использовать SSMS v17 с пакетом DTSv14, а задачи сценария остались в покое и были импортированы нормально. Но по другим причинам нам нужно использовать SSMS v18.

person FmlyMaan    schedule 05.08.2020