Udostępnij za pomocą


CREATE SYNONIM (Transact-SQL)

Dotyczy:SQL ServerAzure SQL DatabaseAzure SQL Managed InstanceBaza danych SQL w usłudze Microsoft Fabric

Tworzy nowy synonim.

Transact-SQL konwencje składni

Składnia

Składnia programu SQL Server:

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
}

Azure SQL Database i SQL database w składni Microsoft Fabric:

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object>

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

Arguments

schema_name_1

Określa schemat, w którym jest tworzony synonim. Jeśli nie określono schema_name , program SQL Server używa domyślnego schematu bieżącego użytkownika.

synonym_name

Nazwa nowego synonimu.

server_name

Nazwa serwera, na którym znajduje się obiekt podstawowy.

database_name

Nazwa bazy danych, w której znajduje się obiekt podstawowy. Jeśli database_name nie zostanie określona, zostanie użyta nazwa bieżącej bazy danych.

schema_name_2

Nazwa schematu obiektu podstawowego. Jeśli schema_name nie zostanie określony, zostanie użyty domyślny schemat bieżącego użytkownika.

object_name

Nazwa obiektu podstawowego, do którego odwołuje się synonim.

Uwaga / Notatka

Azure SQL Database oraz baza danych SQL w Microsoft Fabric obsługują trzyczęściowy format database_name.[schema_name].object_name nazwy, gdy database_name jest aktualną bazą danych, database_name jest i tempdbobject_name zaczyna się od #.

Uwagi

Obiekt podstawowy nie musi istnieć w czasie tworzenia synonimów. Program SQL Server sprawdza istnienie obiektu podstawowego w czasie wykonywania.

  • Synonimy można utworzyć dla następujących typów obiektów:

    • Procedura składowana zestawu (CLR)
    • Funkcja table-valued zestawu (CLR)
    • Funkcja skalarna zestawu (CLR)
    • Funkcje agregujące zestawu (CLR)
    • Procedura filtrowania replikacji
    • Rozszerzona procedura składowana
    • Funkcja skalarna języka T-SQL
    • Funkcja wartości tabeli języka T-SQL
    • Funkcja wbudowanych tabel języka T-SQL
    • Procedura składowana języka T-SQL
    • Tabela (zdefiniowana przez użytkownika, łącznie z lokalnymi i globalnymi tabelami tymczasowymi)
    • View
  • Czteroczęściowe nazwy obiektów bazowych funkcji nie są obsługiwane.

  • Synonimy można tworzyć, usuwać i odwoływać się w dynamicznym języku T-SQL.

  • Synonimy są specyficzne dla bazy danych i nie mogą być dostępne dla innych baz danych.

Permissions

Aby utworzyć synonim w danym schemacie, użytkownik musi mieć uprawnienia i być CREATE SYNONYM właścicielem schematu lub mieć ALTER SCHEMA uprawnienia.

Uprawnienie CREATE SYNONYM jest uprawnieniem, które można przyznać.

Uwaga / Notatka

Nie potrzebujesz uprawnień dla obiektu podstawowego, aby pomyślnie skompilować instrukcję CREATE SYNONYM , ponieważ wszystkie kontrole uprawnień w obiekcie podstawowym są odroczone do czasu wykonywania.

Przykłady

A. Tworzenie synonimu dla obiektu lokalnego

Poniższy przykład najpierw tworzy synonim obiektu podstawowego w ProductAdventureWorks2025 bazie danych, a następnie wykonuje zapytanie dotyczące synonimu.

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

-- Query the Product table by using the synonym.
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 synonimu dla obiektu zdalnego

W poniższym przykładzie obiekt Contactpodstawowy , znajduje się na serwerze zdalnym o nazwie Server_Remote.

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

C. Tworzenie synonimu dla funkcji zdefiniowanej przez użytkownika

Poniższy przykład tworzy funkcję o nazwie dbo.OrderDozen , która zwiększa liczbę zamówień do 12 jednostek. W tym przykładzie zostanie utworzony synonim dbo.CorrectOrder funkcji dbo.OrderDozen .

-- 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;

Następny krok