преимущества синонимов в SQL? - PullRequest
4 голосов
/ 17 марта 2011

почему используются синонимы?, Преимущества синонимов в SQL?

Ответы [ 3 ]

6 голосов
/ 17 марта 2011

Это просто сокращенные имена объектов в базе данных.Например, вы можете создать синоним Products, если у вас есть таблица пространств имен в базе данных с именем ProductionControl.Inventory.Products.Они также удобны для управления именованным доступом к другим базам данных в хранимых процедурах.Если у вас есть SP, которые ссылаются на таблицы в других базах данных, создание синонима и его использование дает вам больше контроля в случае изменения цели синонима.Это полезно в сценариях, где у вас есть SP, которые ссылаются на базу данных разработки, но при развертывании в производство имя будет другим.Так что вы просто обновите синоним и все будет в порядке.

2 голосов
/ 17 марта 2011

Из MSDN Понимание синонимов

Синоним - это объект базы данных, который служит для следующих целей:

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

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

0 голосов
/ 29 сентября 2014

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

Синонимы могут помочь вам отделить имя и местоположение базового объекта от вашего кода SQL.Таким образом, вы можете кодировать против таблицы синонимов, даже если нужная таблица перемещена на новый сервер / базу данных или переименована.

Например, я мог бы написать такой запрос:

insert into MyTable
(...)
select ... 
from remoteServer.remoteDatabase.dbo.Employee

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

insert into MyTable
(...)
select ... 
from EmployeeSynonym

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

http://www.mssqltips.com/sqlservertip/1820/use-synonyms-to-abstract-the-location-of-sql-server-database-objects/

...