Megosztás a következőn keresztül:


SZINONIMÁK LÉTREHOZÁSA (Transact-SQL)

A következőkre vonatkozik:SQL ServerAzure SQL DatabaseFelügyelt Azure SQL-példánySQL-adatbázis a Microsoft Fabricben

Új szinonimát hoz létre.

Transact-SQL szintaxis konvenciók

Szemantika

SQL Server szintaxisa:

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 és SQL database in Microsoft Fabric syntax:

CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object>

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

Arguments

schema_name_1

Megadja azt a sémát, amelyben a szinonima létrejön. Ha nincs megadva schema_name, az SQL Server az aktuális felhasználó alapértelmezett sémáját használja.

synonym_name

Az új szinonima neve.

server_name

Annak a kiszolgálónak a neve, amelyen az alapobjektum található.

database_name

Annak az adatbázisnak a neve, amelyben az alapobjektum található. Ha nincs megadva database_name, a rendszer az aktuális adatbázis nevét használja.

schema_name_2

Az alapobjektum sémájának neve. Ha nincs megadva schema_name , a rendszer az aktuális felhasználó alapértelmezett sémáját használja.

object_name

Annak az alapobjektumnak a neve, amelyekre a szinonimák hivatkoznak.

Megjegyzés:

Az Azure SQL Database és SQL adatbázis a Microsoft Fabric-ben támogatja a háromrészes névformátumot database_name.[schema_name].object_name , ha a database_name a jelenlegi adatbázis, vagy a database_nametempdb az, és a object_name a következő név #kezdődik.

Megjegyzések

Az alapobjektumnak nem kell szinonimák létrehozásakor léteznie. Az SQL Server futásidőben ellenőrzi az alapobjektum meglétét.

  • Szinonimák a következő típusú objektumokhoz hozhatók létre:

    • Szerelvény (CLR) tárolt eljárása
    • Szerelvény (CLR) táblaértékes függvény
    • Assembly (CLR) skaláris függvény
    • Assembly (CLR) aggregátumfüggvények
    • Replikációs szűrési eljárás
    • Kiterjesztett tárolt eljárás
    • T-SQL skaláris függvény
    • T-SQL táblaértékes függvény
    • T-SQL inline-table-valued függvény
    • T-SQL tárolt eljárás
    • Tábla (felhasználó által definiált, helyi és globális ideiglenes táblákat tartalmaz)
    • View
  • A függvénybázis-objektumok négyrészes nevei nem támogatottak.

  • Szinonimák hozhatók létre, elvethetők és hivatkozhatók dinamikus T-SQL-ben.

  • A szinonimák adatbázis-specifikusak, és más adatbázisok nem érhetők el.

Permissions

Ha szinonimát szeretne létrehozni egy adott sémában, a felhasználónak engedéllyel kell rendelkeznie CREATE SYNONYM , és rendelkeznie kell a sémával, vagy rendelkeznie kell ALTER SCHEMA engedéllyel.

Az CREATE SYNONYM engedély egy adható engedély.

Megjegyzés:

Az utasítás sikeres fordításához CREATE SYNONYM nincs szükség az alapobjektum engedélyére, mert az alapobjektum összes engedélyellenőrzése a futtatás időpontjáig halasztva lesz.

Példák

A. Szinonima létrehozása helyi objektumhoz

Az alábbi példa először létrehoz egy szinonimát az alapobjektumhoz az Product adatbázisban, AdventureWorks2025 majd lekérdezi a szinonimát.

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

Itt van az eredmények összessége.

ProductID   Name
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings

(4 row(s) affected)

B. Szinonima létrehozása távoli objektumhoz

Az alábbi példában az alapobjektum Contactegy távoli kiszolgálón Server_Remotetalálható.

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

C. Szinonima létrehozása felhasználó által definiált függvényhez

Az alábbi példa egy olyan függvényt hoz létre, dbo.OrderDozen amely 12 egységre növeli a rendelési mennyiségeket. A példa ezután létrehozza a függvény szinonimát dbo.CorrectOrderdbo.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;

Következő lépés