Переименование всех ссылок на объект базы данных
С помощью рефакторинга базы данных можно быстрее и точнее обновить ссылки на переименованные объекты базы данных. При переименовании объекта базы данных в проекте базы данных следует также обновить все ссылки на этот объект с учетом его нового имени. Например, следует обновить все хранимые процедуры, которые ссылаются на переименованный столбец базы данных.
С помощью рефакторинга можно обновить ссылки по всему проекту базы данных без ручного отслеживания зависимостей между объектами и обновления ссылок по одной. Даже при использовании sp_depends для поиска зависимостей эти сведения не всегда извлекаются точно и каждую ссылку все равно нужно обновлять вручную.
Рефакторинг можно использовать для автоматического переименования следующих типов объектов:
Таблицы
Столбцы в таблицах, представлениях и функциях
Параметры хранимой процедуры
Кроме того, можно также воспользоваться рефакторингом для обновления планов создания данных, скриптов и модульных тестов. Дополнительные сведения см. в разделе Пере переименованием объектов базы данных.
По умолчанию рефакторинг не приводит к обновлению объектов, определения стали причиной одного или нескольких предупреждений или ошибок. Кроме того, рефакторинг не обеспечивает автоматического обновления имени SQL-файла, содержащего определение объекта, который необходимо переименовать. Можно переименовать файл вручную в обозревателе решений.
Дополнительные применения оптимизации кода по переименованию
Рефакторинг переименования можно также использовать для выполнения следующих типичных задач.
В среде без учета регистра можно изменить регистр имени объекта и все ссылки на него в соответствии с соглашениями о регистре, принятыми в конкретной организации. Например, проект базы данных может содержать смешанные ссылки на объекты "Мой_идентификатор" и "Мой_Идентификатор", а с помощью рефакторинга переименования можно изменить все ссылки на "Мой_идентификатор".
Примечание
При этом обновляются также ссылки с правильным регистром (тем же значением).Если файл, содержащий такие ссылки, находится в системе управления версиями, он извлекается в рамках операции рефакторинга кода.
Два и более объектов можно переименовать так, чтобы их имена и ссылки совпадали. Например, можно объединить имена двух схем: "Лицо" и "Имя лица" Также можно объединить в среде без учета регистра два имени, отличающиеся только регистром, например "Мой_Идентификатор" и "Мой_идентификатор".
В соответствии с рекомендациями по именованию объектов можно заключить в квадратные скобки имя объекта схемы и все ссылки на это имя. Например, можно заменить все ссылки «MyID» на «[MyID]».
Примечание
При этом обновляются также и ссылки, которые уже были заключены в квадратные скобки (тем же значением).Если файл, содержащий такие ссылки, находится в системе управления версиями, он извлекается в рамках операции рефакторинга кода.
При выполнении этих задач в сообщении об ошибке указывается, что объект с таким именем уже существует. Чтобы внести изменение, необходимо нажать Да. Однако если в диалоговом окне Переименование установлен флажок Просмотреть изменения, можно просмотреть и выборочно исключить отдельные изменения.
Сохранение намерений с помощью журнала рефакторинга
При переименовании объекта базы данных в журнал рефакторинга добавляется запись для проекта базы данных. Этот журнал помогает при развертывании изменений убедиться, что соответствующий объект в целевой среде переименован так, как намеревался разработчик. В противном случае существующий объект будет удален, а вместо него будет добавлен объект с новым именем. Журнал сохраняется в XML-файле с именем Имя_проекта.refactorlog. Этот файл нужно вернуть в систему управления версиями вместе с остальными файлами, образующими проект базы данных. В файле Имя_проекта.refactorlog содержатся только сведения об операциях рефакторинга, для которых требуются особые действия во время развертывания.
Развертывание
При использовании рефакторинга выполняется обновление только проекта базы данных, а не рабочей базы данных. Следуя этой стратегии, можно воспользоваться всеми преимуществами проектов базы данных, включая управление версиями и командную разработку. При построении проекта базы данных все файлы журнала объединяются в файле transaction.refactorlog, расположенном в папке \sql соответствующего проекта. При развертывании изменений объединенный файл журнала рефакторинга помогает сохранить предназначение изменений в проекте базы данных.
Дополнительные сведения см. в разделе Построение и развертывание баз данных в изолированной среде разработки.
Примечание
В среде на основе рабочих групп приложения и модульные тесты базы данных следует выполнять до развертывания изменений на рабочем сервере.Дополнительные сведения см. в разделе Начало командной разработки базы данных.
Особенности, которые следует учитывать перед переименованием
Если справедливо одно из следующих утверждений, перед переименованием ссылок на объект базы данных нужно учесть дополнительные особенности.
Необходимо переименовать столбец в представлении.
Необходимо переименовать объект в проекте базы данных, содержащем одну или несколько ошибок, препятствующих успешному построению.
Открыт несохраненный план создания данных.
В проекте, использующем генератор привязок данных, присутствует план создания данных.
В модульных тестах базы данных не используются полные имена, а сами эти тесты ссылаются на объекты в других схемах или базах данных.
В проекте используются скрипты базы данных, не использующие полные имена, а сами эти скрипты ссылаются на объекты в других схемах или базах данных.
Дополнительные сведения об особенностях этих сценариев см. в разделе Пере переименованием объектов базы данных.
Общие задачи
В таблице приведено описание стандартных задач, которые могут оказаться полезными при реализации этого сценария, и ссылки на более подробные сведения о выполнении этих задач.
Задача |
Справочные разделы |
---|---|
Получение практического опыта. Возможность подробнее ознакомиться с перемещением объектов базы данных в другую схему, в дополнение к другим типам рефакторинга, следуя указаниям в пошаговом руководстве. Кроме того, выполнив все инструкции во вводных практических руководствах, можно узнать об использовании рефакторинга в рамках жизненного цикла разработки базы данных. |
|
Переименование объекта базы данных. С помощью рефакторинга можно изменить все ссылки на объект базы данных во всем проекте базы данных. В ходе операции рефакторинга можно просмотреть изменения перед их применением. |
|
Отмена операции рефакторинга. Если необходимо отменить операцию рефакторинга, это можно сделать в текущем сеансе Visual Studio. |
|
Развертывание изменений, связанных с рефакторингом базы данных. После выполнения рефакторинга проекта базы данных необходимо развернуть эти изменения в целевой базе данных. Обычно изменения развертываются в изолированной среде разработки, чтобы их можно было проверить перед возвратом в систему управления версиями. |
|
Устранение неполадок: подробная информация об устранении типичных неполадок, связанных с рефакторингом баз данных. |
Связанные сценарии
Переименование ссылок на сервер или базу данных
Перемещение объекта базы данных в другую схему
Полные имена объектов базы данных
Расширение набора подстановочных знаков в инструкциях SELECT