2016-09-28 1 views
0

При использовании проекта базы данных SQL Server в Visual Studio, если в базе данных имеется более 1000 хранимых процедур, при импорте Visual Studio будет разделять процедуры на отдельные каталоги ,Проект базы данных SQL Server не корректно обрабатывает создание файла сценария

При попытке синхронизации любых новых хранимых процедур в проекте, следующих за таким импортом, с помощью функции «Schema Compare», Visual Studio забывает эту структуру разделенных папок и помещает все новые скрипты непосредственно в папку «Хранимые процедуры». Это означает, что новые хранимые процедуры, которые написаны сценарием, не вписываются в существующую структуру, что заставляет пользователя либо жить с этой отдельно взятой структурой, либо вручную обновлять ссылки на проект и копировать файлы обратно в исходную структуру, созданную Visual Studio.

Шаги

  1. Создать новый проект SQL.
  2. Щелкните правой кнопкой мыши по проекту в проводнике решений> выберите «Импортировать»> «База данных».
  3. Связать проект с базой данных SQL2008, содержащей более 1000 хранимых процедур . Выберите «1000» для «Максимальных файлов для каждой папки».
  4. Разрешить VS выполнять скрипты всех хранимых процедур. Он автоматически разбивается на партии 1000 и создает новую папку «Proc1», «Proc2» для каждой партии, если необходимо.
  5. Откройте новое сравнение, щелкнув правой кнопкой мыши по проекту SQL> выберите «Сравнить схемы».
  6. Проверьте правильность синхронизации базы данных, сравнив проект SQL с исходной базой данных . Не должно быть ожидающих изменений.
  7. Создайте новую хранимую процедуру в базе данных, которая была синхронизирована.
  8. Запустите сравнение снова, теперь это должно показать новую хранимую процедуру под типом «Добавить».
  9. Нажмите «Обновить» и разрешите VS создать сценарий для новой процедуры.
  10. Вместо того, чтобы размещать новый скрипт в исходной структуре папок с разделителями 1000, вместо этого он будет размещать новый скрипт непосредственно в папке «Хранимые процедуры».

ответ

0

Это интересный сценарий. Я проверю это на днях.

Вот мои 2 цента. После начальной загрузки всех объектов базы данных в проект базы данных я (или команда разработчиков) прекращает практику добавления новых SP или любых объектов непосредственно в базу данных через SSMS. Вместо этого я добавляю их в проект базы данных и развертываю на всех серверах, в которых они мне нужны. Проект базы данных действует как настоящий источник кода с этой точки. Кроме того, вы можете использовать функцию ветвления TFS для сохранения версии QA, версии Prod для проектов баз данных. Я также пытаюсь дать содержательные имена папкам для категорий SP в папке Stored Proc, которая помогает в моем будущем обслуживании кода.

Смежные вопросы