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


CREATE SYNONYM (Transact-SQL)

Создание нового синонима.

Значок ссылки на разделСоглашения о синтаксисе в Transact-SQL

Синтаксис

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR < object >

< object > :: =
{
    [ server_name.[ database_name ] . [ schema_name_2 ].| database_name . [ schema_name_2 ].| schema_name_2. ] object_name
}

Аргументы

  • schema_name_1
    Указывает схему, в которой создается новый синоним. Если аргумент schema не задан, SQL Server 2005 использует схему по умолчанию текущего пользователя.
  • synonym_name
    Имя нового синонима.
  • server_name
    Имя сервера, на котором расположен базовый объект.
  • database_name
    Имя базы данных, в которой расположен базовый объект. Если не задано database_name, используется имя текущей базы данных.
  • schema_name_2
    Имя схемы базового объекта. Если не задан аргумент schema_name, используется схема по умолчанию текущего пользователя.
  • object_name
    Имя базового объекта, на который ссылается синоним.

Замечания

Базовый объект не обязательно должен существовать во время создания синонима. SQL Server проверяет существование базового объекта во время выполнения.

Синонимы могут создаваться для следующих типов объектов:

Хранимая процедура сборки (среда CLR)

Возвращающая табличное значение функция сборки (среда CLR)

Скалярная функция сборки (среда CLR)

Статистические функции сборки (среда CLR)

Процедура фильтра репликации

Расширенная хранимая процедура

Скалярная функция SQL

Возвращающая табличное значение функция SQL

Встроенная возвращающая табличное значение функция SQL

Хранимая процедура SQL

Представление

Таблица1 (пользовательская)

1 Включает локальные и глобальные временные таблицы

Четырехчастные имена для базовых объектов функций не поддерживаются.

Синонимы можно создавать, удалять и ссылаться на них в динамическом SQL.

Разрешения

Для создания синонима в заданной схеме пользователь должен иметь разрешение CREATE SYNONYM и, либо владеть схемой, либо иметь разрешение ALTER SCHEMA.

Разрешение на выполнение CREATE SYNONYM можно предоставлять.

ms177544.note(ru-ru,SQL.90).gifПримечание.
Чтобы успешно скомпилировать инструкцию CREATE SYNONYM, не обязательно иметь разрешение на базовый объект, потому что проверка всех разрешений на базовые объекты откладывается до времени выполнения.

A. Создание синонима для локального объекта.

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

USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks.
CREATE SYNONYM MyProduct
FOR AdventureWorks.Production.Product;
GO

-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name 
FROM MyProduct
WHERE ProductID < 5;
GO

Ниже приводится результирующий набор.

-----------------------
ProductID   Name                      
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings
(4 row(s) affected)

Б. Создание синонима для удаленного объекта

В следующем примере базовый объект, Contact, находится на удаленном сервере с именем Server_Remote.

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO

Примеры

См. также

Справочник

DROP SYNONYM (Transact-SQL)
Инструкция GRANT (Transact-SQL)
EVENTDATA (Transact-SQL)

Другие ресурсы

Использование синонимов (компонент Database Engine)

Справка и поддержка

Получение помощи по SQL Server 2005