Поделиться через


Как использовать переименование и рефакторинг для внесения изменений в объекты базы данных

 

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

System_CAPS_noteПримечание

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

Переименование типа

  1. Щелкните правой кнопкой мыши таблицу Products (Products.sql) в обозревателе решений и выберите Просмотреть код, чтобы открыть скрипт в редакторе Transact-SQL.

  2. Щелкните правой кнопкой мыши [Products] в скрипте, выберите Рефакторинг и Переименовать.

  3. В поле Новое имя введите Product.Оставьте параметр Просмотр изменений включенным и нажмите кнопку ОК.

  4. На следующем экране можно будет просмотреть список скриптов, на которые повлияет эта операция переименования.В частности, будут выделены все, которые ссылаются на Products.Это очень похоже на задачу «Найти все ссылки» в предыдущей процедуре.Щелкните в любом месте в верхней области и просмотрите фактические изменения в скриптах (выделены зеленым) в нижней области.

  5. Нажмите кнопку Применить.

  6. Для файлов скриптов, которые уже открыты в конструкторе таблиц или редакторе Transact-SQL: обратите внимание, что в редакторе Transact-SQL места с внесенными изменениями выделены зеленой полосой слева.

  7. Обратите внимание на добавление TradeDev.refactorlog в обозревателе решений.Дважды щелкните его, чтобы открыть.Он содержит XML-представление всех изменений в этом сеансе.

  8. Нажмите клавишу F5 для построения и развертывания проекта в локальной базе данных.

  9. Щелкните правой кнопкой мыши базу данных TradeDev в разделе Local в Обозреватель объектов SQL Server, а затем выберите команду Обновить.

  10. Разверните узел Таблицы и обратите внимание на переименование таблицы Products.

  11. Щелкните правой кнопкой мыши Product и выберите Просмотр данных.Обратите внимание, что существующие данные остаются без изменений, несмотря на операцию переименования.

Разворачивание символов-шаблонов

  1. Разверните узел Функции в обозревателе решений и дважды щелкните GetProductsBySupplier.sql.

  2. Поместите курсор на звездочке в этой строке и щелкните правой кнопкой мыши.Выберите Рефакторинг и Расширить набор подстановочных знаков.

    SELECT * from Product p
    
  3. В диалоговом окне Просмотр изменений щелкните для выделения SELECT * from Product p на верхней панели.

  4. Обратите внимание, что в расположенной ниже области Просмотр изменений символ * развернут в скрипте.

    [Id], [Name], [ShelfLife], [SupplierId], [CustomerId]
    
  5. Нажмите кнопку Применить.Обратите внимание, что линия, которая содержит изменения, внесенные операцией разворачивания, снова выделены зеленой полосой слева.

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

  1. Убедитесь, что файл GetProductsBySupplier.sql еще открыт в редакторе Transact-SQL.

  2. Поместите курсор на Product в этой строке и щелкните правой кнопкой мыши.Выберите Рефакторинг и Полные имена.

    SELECT [Id], [Name], [ShelfLife], [SupplierId], [CustomerId] from Product p
    
  3. Нажмите кнопку Применить в диалоговом окне Просмотр изменений.Обратите внимание, что обновились все ссылки на объекты: теперь в них указано имя схемы объекта, а также имя родителя, если он есть у объекта.

    SELECT [p].[Id], [p].[Name], [p].[ShelfLife], [p].[SupplierId], [p].[CustomerId] from [dbo].[Product] p
    

Перемещение схемы

  1. Щелкните правой кнопкой мыши объект, который нужно переместить.Выберите Рефакторинг, затем Переместить схему.

  2. В списке Новая схема щелкните имя схемы, в которую нужно переместить объект.Нажмите кнопку «ОК».

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