2016-09-16 7 views
2

Итак, мы пытаемся внедрить триггеры DDL в наших базах данных для отслеживания изменений DDL для наших разработчиков и прекрасно работаем. Тем не менее, мы столкнулись с проблемой с нашими разработчиками Visual Studio 2013/2015. Когда они редактируют таблицу/proc/anything из Visual Studio, она отключит триггер ddl, внесут изменения и снова включит триггер, что делает триггер бессмысленным.Как настроить скрипты SQL, созданные Visual Studio

Я обнаружил, что могу создать проект базы данных SQL, перейдите в Project> Properties> Debug> Advanced и снимите флажок «Disable and Reenable DDL Triggers». Этот параметр сохраняется в файле Project.SQLProj.User. И скрипты перестанут добавлять в триггерные секции Disable/Enable.

Однако, когда разработчики просто переходят к обозревателю обозревателя обозревателя и SQL Server таким образом, в любое время они вносят изменения и запускают «Обновление» и генерируют сценарий, вот и отключается/reenable ddl trigger в скрипте. Я расчесывал файлы справки визуальной студии, googles, наших местных гуру VS, и никто, кажется, не знает, где живут настройки для этих сценариев на лету/не-проект. Любая помощь будет оценена по достоинству.

+0

Если вы используете проекты базы данных и вносите изменения в управление версиями, вы уже отслеживаете изменения. Какую роль играет триггер DDL? –

+0

В этом проблема. Мы не используем проекты баз данных. Это единственное место, которое я нашел, чтобы изменить настройки сценария, но он всегда привязан к определенному проекту/решению. Мы используем связанные серверы совсем немного, и SSDT не преуспевает в том, что мы нашли. – BeardOfTriumph

+0

Что вы подразумеваете под «настройками скрипта»? –

ответ

0

Welp, я нашел обходной путь к этому вопросу. Я по-прежнему не могу заставить Visual Studio отключать триггеры по умолчанию, но я работал над ним, создав триггер DDL на уровне сервера.

Триггер DDL на уровне сервера будет проверять DDL сервера и базы данных и не будет отключен, когда VS выдает запрос на выключение базы данных ddl.

3

При публикации следующих вариантов используются. Я не знают о влиянии настройки в файле .user имеет

  • Если вы используете публиковать диалоговое окно и нажмите на передовой, а затем снимите

    Disable And Reenable Ddl Triggers 
    
  • Если вы используете публикацию файл профиля что-то вроде yourDb.publish.xml то объявление об этом файле

    <DisableAndReenableDdlTriggers>False</DisableAndReenableDdlTriggers> 
    
  • Если делаешь г это с помощью SQLPackage.exe вы также можете указать /p:DisableAndReenableDdlTriggers=false