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

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

Предупреждение

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

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

  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. В списке Новая схема щелкните имя схемы, в которую нужно переместить объект. Щелкните OK.

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