Tworzenie SYNONIM (Transact-SQL)
Tworzy nowy synonim.
Składnia
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
}
Argumenty
schema_name_1
Określa schemat, w którym tworzony jest synonimem.Jeśli schema nie jest określony, SQL Server korzysta z domyślnego schematu z bieżącego użytkownika.synonym_name
Jest nazwą nowego synonim.server_name
Jest nazwą serwera, na którym znajduje się obiekt podstawowy .database_name
Jest to nazwa bazy danych, w którym znajduje się obiekt podstawowy .Jeśli database_name nie zostanie określona, używana jest nazwa bieżącej bazy danych.schema_name_2
Jest to nazwa schematu obiekt podstawowy.Jeśli schema_name nie jest określony, używany jest domyślny schemat bieżący użytkownik.object_name
Jest to nazwa obiekt podstawowy , który odwołuje się synonimem.
Uwagi
obiekt podstawowy potrzeby istnieje na synonim utworzyć czas.SQL Serversprawdza istnienie obiekt podstawowy w czaswykonywania.
Synonimy mogą być tworzone dla następujących typów obiektów:
Procedura przechowywana zestawu (CLR) |
Montaż (CLR) funkcją oródwierszową |
Funkcja skalarna zestawu (CLR) |
Funkcje agregujące zestawu agregacji (CLR) |
Procedurę filtrowania replikacji |
Rozszerzona procedura przechowywana |
SQL Funkcja skalarna |
SQL Funkcją oródwierszową |
SQL Wbudowanytabela-wycenione funkcji |
SQL Procedura przechowywana |
Widok |
Tabela1 (zdefiniowane przez użytkownika) |
1 Zawiera lokalne i globalne tabele tymczasowe
Czteroczęściowym nazw obiektów podstawowych funkcja nie są obsługiwane.
Synonimy można tworzyć, odrzucone i odwołuje się do dynamicznego SQL.
Uprawnienia
Aby utworzyć synonim w dany schemat, użytkownik musi mieć uprawnienie Tworzenie SYNONIM i albo własny schemat lub mieć uprawnienie zmiany SCHEMATU.
Uprawnienie Tworzenie SYNONIM jest uprawnienie grantable.
Ostrzeżenie
Nie ma potrzeby uprawnienia dla obiekt podstawowy pomyślnie skompilować SYNONIM tworzenie instrukcja, ponieważ wszystkie uprawnienia sprawdzanie obiekt podstawowy jest odroczone do czaswykonywania.
Przykłady
A.Tworzenie synonim dla lokalnego obiektu
Poniższy przykład tworzy najpierw synonim dla obiekt podstawowy Product w AdventureWorks2008R2 bazy danych, a następnie sprawdza synonim.
USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks2008R2.
CREATE SYNONYM MyProduct
FOR AdventureWorks2008R2.Production.Product;
GO
-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name
FROM MyProduct
WHERE ProductID < 5;
GO
Oto zestaw wyników.
-----------------------
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B.Tworzenie synonim do obiektu zdalnego
W poniższym przykładzie obiekt podstawowy Contact, znajduje się na serwerze zdalnym o nazwie Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2008R2.HumanResources.Employee;
GO
C.Tworzenie synonim dla funkcjazdefiniowanej przez użytkownika
Poniższy przykład tworzy funkcja o nazwie dbo.OrderDozen , która zwiększa kwoty zamówienia do kilkudziesięciu nawet jednostek.Przykład tworzy następnie synonim dbo.CorrectOrder do dbo.OrderDozen funkcja.
-- Creating the dbo.OrderDozen function
CREATE FUNCTION dbo.OrderDozen (@OrderAmt int)
RETURNS int
WITH EXECUTE AS CALLER
AS
BEGIN
IF @OrderAmt % 12 <> 0
BEGIN
SET @OrderAmt += 12 - (@OrderAmt % 12)
END
RETURN(@OrderAmt);
END;
GO
-- Using the dbo.OrderDozen function
DECLARE @Amt int
SET @Amt = 15
SELECT @Amt AS OriginalOrder, dbo.OrderDozen(@Amt) AS ModifiedOrder
-- Create a synonym dbo.CorrectOrder for the dbo.OrderDozen function.
CREATE SYNONYM dbo.CorrectOrder
FOR dbo.OrderDozen;
GO
-- Using the dbo.CorrectOrder synonym.
DECLARE @Amt int
SET @Amt = 15
SELECT @Amt AS OriginalOrder, dbo.CorrectOrder(@Amt) AS ModifiedOrder
Zobacz także