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 можно предоставлять.
Примечание. |
---|
Чтобы успешно скомпилировать инструкцию 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)