Udostępnij za pośrednictwem


CREATE SYNONYM (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
}

Argumenty

  • schema_name_1
    Określa, w którym tworzony jest synonimem schematu.Jeśli schema nie określono, 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 obiekt bazowy znajduje się.

  • database_name
    Jest nazwą bazy danych, w którym znajduje się obiekt bazowy.Jeśli database_name nie zostanie określona, używana jest nazwa bieżącej bazy danych.

  • schema_name_2
    Jest to nazwa schematu obiekt bazowy.Jeśli schema_name nie jest określony, używany jest domyślny schemat bieżącego użytkownika.

  • object_name
    Jest nazwą podstawowego obiektu, do którego odwołuje się synonimem.

Remarks

The base object need not exist at synonym create time.SQL Server checks for the existence of the base object at run time.

Synonimy mogą być tworzone dla następujących typów obiektów:

Procedura przechowywana wirtualny plik dziennika (CLR)

wirtualny plik dziennika (CLR) funkcja zwracająca tabelę

Funkcja wartość skalarna wirtualny plik dziennika (CLR)

Funkcje agregujące wirtualny plik dziennika sumaryczne (CLR)

Procedurę filtrowania replikacja

rozszerzona procedura składowana

Funkcja skalarne SQL

SQL funkcja zwracająca tabelę

Wycenione tabela wbudowana funkcja SQL

Procedura przechowywana SQL

Bez opuszczania środowiska, można zarządzać sieci fizycznej i łatwo zespołów projektów.

Tabela1 (Zdefiniowane przez użytkownika)

1 Zawiera lokalne i globalne tabele tymczasowe

Four-Part nazwy dla obiektów podstawowych funkcja nie są obsługiwane.

Synonimy mogą być tworzone, odrzucone i odwołuje się do dynamicznych instrukcji SQL.

Uprawnienia

Aby utworzyć synonim w dany schemat, użytkownik musi mieć uprawnienie CREATE SYNONYM i albo własny schemat lub mieć uprawnienia ALTER SCHEMA.

Uprawnienie CREATE SYNONYM jest grantable uprawnień.

Uwaga

Nie ma potrzeby uprawnienia dla obiekt bazowy pomyślnie skompilować instrukcja CREATE SYNONYM, ponieważ wszystkie uprawnienia kontroli obiekt bazowy jest przesunięty do czas wykonywania.

Przykłady

A.Tworzenie synonimem obiektu lokalnego

W poniższym przykładzie najpierw tworzy synonim dla obiekt bazowy Product w AdventureWorks bazy danych, a następnie wykonuje kwerendę dotyczącą synonimem.

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

Here is the result set.

-----------------------

Nazwa IDProduktu

----------- --------------------------

1 Regulowane rasę

2 Kulowy znaczenie

3 Mając kulowy BB

4 Łożyska kulki słuchawki

(dotyczy wiersze 4)

B.Tworzenie synonim do obiektu zdalnego

W poniższym przykładzie obiekt bazowy 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.AdventureWorks.HumanResources.Employee;
GO

C.Tworzenie synonim dla funkcja zdefiniowanej przez użytkownika

Poniższy przykład tworzy funkcja o nazwie dbo.OrderDozen kwoty zamówień jednostkom nawet dozen, wzrasta. W przykładzie tworzy synonimem dbo.CorrectOrder dla 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