Books and articles about SQL Rambler's Top100 Сменить язык на: Русский 09 July 2020 21:26:26


www.sql-ex.ru
Skip Navigation Links  

 

Print  Версия для печати

На главную страницу

Сократите время разработки с помощью синонимов SQL Server 2005

Tim Chapman (оригинал: Cut development time with SQL Server 2005's synonyms)
Перевод Моисеенко С.И.

Синоним - это новый объект в SQL Server 2005. Он представляет собой способ присвоить псевдоним уже существующему объекту. Например, если Вы имеете таблицу с именем SalesHistoryFromArchiveFiscalBusinessYear2005, то могли бы создать синоним по имени Sales05, который указывает на этот объект. Это означает, что вместо запроса:

SELECT * FROM SalesHistoryFromArchiveFiscalBusinessYear2005

вы можете написать так:

SELECT * FROM Sales05

Преимущества

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

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

Пример

Из-за расширения бизнеса и потребности в масштабируемости Вы решаете, что хорошо бы переместить таблицу SalesHistory из вашей текущей базы данных Inventory в отдельную базу данных с именем SalesData. В базе данных Inventory имеется много кода, который имеет ссылки на таблицу SalesHistory. Большую часть кода составляют простые запросы, которые лишь читают данные из таблицы SalesHistory. Приближается срок сдачи проекта, поэтому было бы затруднительно переписать весь существующий код, заменив в нем ссылки на таблицу в новой базе данных. Я покажу, как Вы можете использовать здесь синоним, чтобы существенно уменьшить время на разработку.

Предположим, что Вы уже скопировали вашу таблицу SalesHistory в новую базу данных SalesData и переименовали текущую таблицу SalesHistory в базе данных Inventory. (Я всегда предпочитаю переименовывать таблицу прежде, чем удалить ее. Это дает мне возможность выявить любые ошибки в системе, вызванные удалением таблицы.)

Как только Вы переименовали таблицу SalesHistory, Вы можете создать синоним, который ссылается на таблицу SalesHistory, которую Вы поместили в новую базу данных. Смотрите нижеприведенный скрипт.

USE Inventory

GO

CREATE SYNONYM SalesHistory

FOR SalesData.dbo.SalesHistory;

GO

Этот синоним создал указатель на таблицу SalesHistory в новой базе данных SalesData; однако, поскольку синоним находится в базе данных Inventory и называется SalesHistory, любые запросы или операторы DML адресуемые к синониму SalesHistory фактически выполняются с таблицей SalesHistory в базе данных SalesData.

09.04.2007

На главную страницу

Print  Версия для печати


Usage of any materials of this site is possible
only under condition of mandatory allocation of the direct link to a site
http://www.sqlbooks.ru
on each page where used materials are placed.

 Main   Articles    Books 
Рейтинг@Mail.ru Rambler's Top100 Alt Упражнения по SQL: обучение, тестирование, сертификация по языку SQL Copyright c 2002-2006. All rights reserved.