Переименование всех ссылок на объект базы данных

С помощью рефакторинга базы данных можно быстрее и точнее обновить ссылки на переименованные объекты базы данных. При переименовании объекта базы данных в проекте базы данных следует также обновить все ссылки на этот объект с учетом его нового имени. Например, следует обновить все хранимые процедуры, которые ссылаются на переименованный столбец базы данных.

С помощью рефакторинга можно обновить ссылки по всему проекту базы данных без ручного отслеживания зависимостей между объектами и обновления ссылок по одной. Даже при использовании sp_depends для поиска зависимостей эти сведения не всегда извлекаются точно и каждую ссылку все равно нужно обновлять вручную.

Рефакторинг можно использовать для автоматического переименования следующих типов объектов:

  • Таблицы

  • Столбцы в таблицах, представлениях и функциях

  • Параметры хранимой процедуры

Кроме того, можно также воспользоваться рефакторингом для обновления планов создания данных, скриптов и модульных тестов. Дополнительные сведения см. в разделе Пере переименованием объектов базы данных.

По умолчанию рефакторинг не приводит к обновлению объектов, определения стали причиной одного или нескольких предупреждений или ошибок. Кроме того, рефакторинг не обеспечивает автоматического обновления имени SQL-файла, содержащего определение объекта, который необходимо переименовать. Можно переименовать файл вручную в обозревателе решений.

Дополнительные применения оптимизации кода по переименованию

Рефакторинг переименования можно также использовать для выполнения следующих типичных задач.

  • В среде без учета регистра можно изменить регистр имени объекта и все ссылки на него в соответствии с соглашениями о регистре, принятыми в конкретной организации. Например, проект базы данных может содержать смешанные ссылки на объекты "Мой_идентификатор" и "Мой_Идентификатор", а с помощью рефакторинга переименования можно изменить все ссылки на "Мой_идентификатор".

    Примечание

    При этом обновляются также ссылки с правильным регистром (тем же значением).Если файл, содержащий такие ссылки, находится в системе управления версиями, он извлекается в рамках операции рефакторинга кода.

  • Два и более объектов можно переименовать так, чтобы их имена и ссылки совпадали. Например, можно объединить имена двух схем: "Лицо" и "Имя лица" Также можно объединить в среде без учета регистра два имени, отличающиеся только регистром, например "Мой_Идентификатор" и "Мой_идентификатор".

  • В соответствии с рекомендациями по именованию объектов можно заключить в квадратные скобки имя объекта схемы и все ссылки на это имя. Например, можно заменить все ссылки «MyID» на «[MyID]».

    Примечание

    При этом обновляются также и ссылки, которые уже были заключены в квадратные скобки (тем же значением).Если файл, содержащий такие ссылки, находится в системе управления версиями, он извлекается в рамках операции рефакторинга кода.

При выполнении этих задач в сообщении об ошибке указывается, что объект с таким именем уже существует. Чтобы внести изменение, необходимо нажать Да. Однако если в диалоговом окне Переименование установлен флажок Просмотреть изменения, можно просмотреть и выборочно исключить отдельные изменения.

Сохранение намерений с помощью журнала рефакторинга

При переименовании объекта базы данных в журнал рефакторинга добавляется запись для проекта базы данных. Этот журнал помогает при развертывании изменений убедиться, что соответствующий объект в целевой среде переименован так, как намеревался разработчик. В противном случае существующий объект будет удален, а вместо него будет добавлен объект с новым именем. Журнал сохраняется в XML-файле с именем Имя_проекта.refactorlog. Этот файл нужно вернуть в систему управления версиями вместе с остальными файлами, образующими проект базы данных. В файле Имя_проекта.refactorlog содержатся только сведения об операциях рефакторинга, для которых требуются особые действия во время развертывания.

Развертывание

При использовании рефакторинга выполняется обновление только проекта базы данных, а не рабочей базы данных. Следуя этой стратегии, можно воспользоваться всеми преимуществами проектов базы данных, включая управление версиями и командную разработку. При построении проекта базы данных все файлы журнала объединяются в файле transaction.refactorlog, расположенном в папке \sql соответствующего проекта. При развертывании изменений объединенный файл журнала рефакторинга помогает сохранить предназначение изменений в проекте базы данных.

Дополнительные сведения см. в разделе Построение и развертывание баз данных в изолированной среде разработки.

Примечание

В среде на основе рабочих групп приложения и модульные тесты базы данных следует выполнять до развертывания изменений на рабочем сервере.Дополнительные сведения см. в разделе Начало командной разработки базы данных.

Особенности, которые следует учитывать перед переименованием

Если справедливо одно из следующих утверждений, перед переименованием ссылок на объект базы данных нужно учесть дополнительные особенности.

  • Необходимо переименовать столбец в представлении.

  • Необходимо переименовать объект в проекте базы данных, содержащем одну или несколько ошибок, препятствующих успешному построению.

  • Открыт несохраненный план создания данных.

  • В проекте, использующем генератор привязок данных, присутствует план создания данных.

  • В модульных тестах базы данных не используются полные имена, а сами эти тесты ссылаются на объекты в других схемах или базах данных.

  • В проекте используются скрипты базы данных, не использующие полные имена, а сами эти скрипты ссылаются на объекты в других схемах или базах данных.

Дополнительные сведения об особенностях этих сценариев см. в разделе Пере переименованием объектов базы данных.

Общие задачи

В таблице приведено описание стандартных задач, которые могут оказаться полезными при реализации этого сценария, и ссылки на более подробные сведения о выполнении этих задач.

Задача

Справочные разделы

Получение практического опыта. Возможность подробнее ознакомиться с перемещением объектов базы данных в другую схему, в дополнение к другим типам рефакторинга, следуя указаниям в пошаговом руководстве. Кроме того, выполнив все инструкции во вводных практических руководствах, можно узнать об использовании рефакторинга в рамках жизненного цикла разработки базы данных.

Переименование объекта базы данных. С помощью рефакторинга можно изменить все ссылки на объект базы данных во всем проекте базы данных. В ходе операции рефакторинга можно просмотреть изменения перед их применением.

Отмена операции рефакторинга. Если необходимо отменить операцию рефакторинга, это можно сделать в текущем сеансе Visual Studio.

Развертывание изменений, связанных с рефакторингом базы данных. После выполнения рефакторинга проекта базы данных необходимо развернуть эти изменения в целевой базе данных. Обычно изменения развертываются в изолированной среде разработки, чтобы их можно было проверить перед возвратом в систему управления версиями.

Устранение неполадок: подробная информация об устранении типичных неполадок, связанных с рефакторингом баз данных.

Связанные сценарии

Переименование ссылок на сервер или базу данных

Перемещение объекта базы данных в другую схему

Полные имена объектов базы данных

Расширение набора подстановочных знаков в инструкциях SELECT

См. также

Основные понятия

Рефакторинг кода и данных базы данных

Общие сведения о проектах баз данных и серверов