Как разработать TSQL в проектах Visual Studio 2010 Database

Глупый звуковой вопрос, я знаю... Позвольте мне сначала заложить основы.

Я успешно создал проект базы данных, состоящий из сотен таблиц, хранимых процедур, индексов, et.al. которые составляют нашу производственную базу данных.

Я успешно добавил решение для управления версиями (TFS).

Я сделал изменение (как тест) для некоторых объектов и сгенерировал развертывание script, и вся система очень впечатляет, я должен сказать. Но, похоже, сила VS 2010 с точки зрения БД - это развертывание, и не обязательно развитие.

Я полностью озадачен повседневным рабочим процессом, связанным с разработкой базы данных /TSQL с помощью Visual Studio. Предположим, мне нужно добавить несколько столбцов в таблицу и изменить связанные хранимые процедуры для возврата/обновления этих данных для этих столбцов.

Хотя достаточно легко изменить все сценарии в моей модели базы данных, я бы хотел, чтобы они могли изолировать их от базы данных dev, где я могу провести некоторое тестирование... Но это так же просто, как не обновлять proc, если он существует, без ручного изменения script на ALTER (или добавление кода DROP до CREATE). Необходимость делать это один или два раза не является проблемой, но в реальной среде разработчиков мы делаем это в течение всего дня.

Возможно, ответ заключается в частом развертывании сервера dev, поскольку я отлаживаю и вношу изменения в procs, например? Довольно немного накладных расходов; Я могу выполнить необходимые скрипты вручную через несколько секунд, создание и развертывание занимает несколько минут. Плюс, если трое из нас разворачивают различные изменения в Dev DB, не будем ли мы перезаписывать другие изменения?

Извините, что так долго, но я не могу не думать, что мне здесь что-то не хватает.

Существуют ли какие-либо книги/учебники/веб-семинары, демонстрирующие этот тип подхода к реальной разработке?

Ответ 1

Я думаю, ты ударил ноготь по голове. Чтобы протестировать измененные хранимые процедуры, вам необходимо пройти шаг развертывания, чтобы обновить вашу базу данных. Это недостаток автономной модели разработки.

Здесь, в Red Gate, у нас было множество запросов, чтобы заставить SQL Source Control поддерживать проект Database Project, который позволит разработчикам извлечь выгоду из "интерактивной" модели разработки, в то же время пользуясь возможностями Database Project.

[EDIT] Мы добавили поддержку "Бета" для проекта базы данных в SQL Source Control, которая позволяет подключать SSMS к формату проекта базы данных. Простая ссылка на папку с файлом es.sqlproj из SQL Source Control и начать разработку! [/EDIT]

В то же время вам придется постоянно развертывать dev на основе!

Альтернативой является разработка в реальной базе данных и использование функции сравнения схем для синхронизации с вашим проектом базы данных. Schema Compare доступен в версиях Premium и Ultimate Visual Studio.

Дэвид Аткинсон Менеджер по продукции Программное обеспечение Red Gate