Udostępnij za pośrednictwem


Tworzenie SYNONIM (Transact-SQL)

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