Как использовать переименование и рефакторинг для внесения изменений в объекты базы данных
В контекстном меню "Рефакторинг" в редакторе Transact-SQL можно переименовать объект или переместить его в другую схему, а также просмотреть все затрагиваемые области, прежде чем фиксировать изменение. Кроме того, с помощью меню "Рефакторинг" можно полностью указывать все ссылки на объекты базы данных либо развертывать подстановочные знаки в инструкциях SELECT
проекта базы данных.
Предупреждение
В следующей процедуре используются сущности, созданные в предыдущих процедурах, в разделах "Разработка автономных баз данных для проектов".
Переименование типа
Правой кнопкой мыши щелкните таблицу Products (Products.sql) в обозревателе решений и выберите Просмотреть код, чтобы открыть скрипт в редакторе Transact-SQL.
Щелкните скрипт правой кнопкой мыши
[Products]
, выберите "Рефакторинг" и "Переименовать".В поле Новое имя введите Product. Оставьте включенным параметр Предварительный просмотр изменений и нажмите кнопку OК.
На следующем экране можно будет просмотреть список скриптов, на которые повлияет эта операция переименования. В частности, будут выделены все, которые ссылаются на
Products
. Это очень похоже на задачу «Найти все ссылки» в предыдущей процедуре. Щелкните в любом месте в верхней области и просмотрите фактические изменения в скриптах (выделены зеленым) в нижней области.Щелкните Применить.
Обратите внимание, что в редакторе Transact-SQL в файлах скриптов, которые уже открыты в конструкторе таблиц или редакторе Transact-SQL, места с внесенными изменениями выделены зеленой полосой слева.
Также обратите внимание на добавление журнала TradeDev.refactorlog в обозревателе решений. Дважды щелкните его, чтобы открыть. Он содержит XML-представление всех изменений в этом сеансе.
Нажмите клавишу F5 для построения и развертывания проекта в локальной базе данных.
Правой кнопкой мыши щелкните базу данных TradeDev в разделе Localобозревателя объектов SQL Server и выберите команду Обновить.
Разверните узел Таблицы и обратите внимание, что таблица Products уже переименована.
Правой кнопкой мыши щелкните Product и выберите Просмотр данных. Обратите внимание, что существующие данные остаются без изменений, несмотря на операцию переименования.
Предупреждение
Если журнал рефакторинга удален, будет удален полный журнал рефакторинга. Когда проект публикуется в базе данных, где предыдущие операции рефакторинга не были применены, все операции рефакторинга, выполненные до удаления файла рефакторинга, будут опубликованы как операции удаления и создания. В результате может произойти потеря данных.
Разворачивание символов-шаблонов
Разверните узел Функции в обозревателе решений и дважды щелкните GetProductsBySupplier.sql.
Поместите курсор на звездочке в этой строке и щелкните правой кнопкой мыши. Выберите Рефакторинг и Сделать подстановки.
SELECT * from Product p
В диалоговом окне Предварительный просмотр изменений щелкните символ
SELECT * from Product p
на верхней панели, чтобы выделить его.Обратите внимание, что в расположенной ниже области Предварительный просмотр изменений символ
*
развернут в скрипте.[Id], [Name], [ShelfLife], [SupplierId], [CustomerId]
Нажмите кнопку Применить. Обратите внимание, что линия, которая содержит изменения, внесенные операцией разворачивания, снова выделены зеленой полосой слева.
Указание полных имен объектов баз данных
Убедитесь, что файл GetProductsBySupplier.sql еще открыт в редакторе Transact-SQL.
Поместите курсор на
Product
в этой строке и щелкните правой кнопкой мыши. Выберите Рефакторинг и Определить имена полностью.SELECT [Id], [Name], [ShelfLife], [SupplierId], [CustomerId] from Product p
Нажмите кнопку Применить в диалоговом окне Предварительный просмотр изменений. Обратите внимание, что обновились все ссылки на объекты: теперь в них указано имя схемы объекта, а также имя родительского элемента, если он есть у объекта.
SELECT [p].[Id], [p].[Name], [p].[ShelfLife], [p].[SupplierId], [p].[CustomerId] from [dbo].[Product] p
Перемещение схемы
Щелкните правой кнопкой мыши объект, который нужно переместить. Выберите Рефакторинг, а затем Переместить схему.
В списке Новая схема щелкните имя схемы, в которую нужно переместить объект. Щелкните OK.
Если флажок Предварительный просмотр изменений установлен, откроется диалоговое окно Предварительный просмотр изменений. В противном случае имя объекта будет обновлено, а объект будет перемещен в новую схему.