Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
              Van toepassing op:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-database in Microsoft Fabric Preview
Hiermee maakt u een nieuw synoniem.
              
              
              Transact-SQL syntaxis-conventies
Syntaxis
SQL Server-syntaxis:
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 en SQL-database in de preview-syntaxis van 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
Hiermee geeft u het schema waarin het synoniem wordt gemaakt. Als schema_name niet is opgegeven, gebruikt SQL Server het standaardschema van de huidige gebruiker.
synonym_name
De naam van het nieuwe synoniem.
server_name
De naam van de server waarop het basisobject zich bevindt.
database_name
De naam van de database waarin het basisobject zich bevindt. Als database_name niet is opgegeven, wordt de naam van de huidige database gebruikt.
schema_name_2
De naam van het schema van het basisobject. Als schema_name niet is opgegeven, wordt het standaardschema van de huidige gebruiker gebruikt.
object_name
De naam van het basisobject waarnaar het synoniem verwijst.
Opmerking
Azure SQL Database en SQL-database in Microsoft Fabric Preview ondersteunen de driedelige naamindeling database_name.[schema_name].object_name wanneer de database_name de huidige database is, of de database_name is tempdb en de object_name begint met #.
Opmerkingen
Het basisobject hoeft niet te bestaan tijdens het maken van synoniemen. SQL Server controleert op het bestaan van het basisobject tijdens runtime.
Synoniemen kunnen worden gemaakt voor de volgende typen objecten:
- Opgeslagen procedure voor assembly (CLR)
 - Clr-functie (Assembly) met tabelwaarde
 - Scalaire functie (CLR) assembly
 - Statistische functies van ASSEMBLY (CLR)
 - Replicatiefilterprocedure
 - Uitgebreide opgeslagen procedure
 - Scalaire T-SQL-functie
 - T-SQL-tabelwaarde, functie
 - T-SQL inline-tabelwaarde, functie
 - Opgeslagen T-SQL-procedure
 - Tabel (door de gebruiker gedefinieerd, bevat lokale en globale tijdelijke tabellen)
 - Bekijk
 
Vierdelige namen voor functiebasisobjecten worden niet ondersteund.
Synoniemen kunnen worden gemaakt, verwijderd en waarnaar wordt verwezen in dynamische T-SQL.
Synoniemen zijn databasespecifiek en kunnen niet worden geopend door andere databases.
Permissions
Als u een synoniem in een bepaald schema wilt maken, moet een gebruiker beschikken over CREATE SYNONYM machtigingen en eigenaar zijn van het schema of machtigingen hebben ALTER SCHEMA .
De CREATE SYNONYM machtiging is een toe te kennen machtiging.
Opmerking
U hebt geen machtiging nodig voor het basisobject om de CREATE SYNONYM instructie te compileren, omdat alle machtigingscontrole op het basisobject wordt uitgesteld tot de uitvoeringstijd.
Voorbeelden
Eén. Een synoniem maken voor een lokaal object
In het volgende voorbeeld maakt u eerst een synoniem voor het basisobject, Product in de AdventureWorks2022 database en voert u vervolgens een query uit op het synoniem.
-- 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
Hier is het resultatenoverzicht.
ProductID   Name
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings
(4 row(s) affected)
B. Een synoniem voor extern object maken
In het volgende voorbeeld bevindt het basisobject zich op Contacteen externe server met de naam Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2022.HumanResources.Employee;
GO
C. Een synoniem maken voor een door de gebruiker gedefinieerde functie
In het volgende voorbeeld wordt een functie met de naam dbo.OrderDozen gemaakt waarmee de volgorde wordt verhoogd tot 12 eenheden. In het voorbeeld wordt vervolgens het synoniem dbo.CorrectOrder voor de dbo.OrderDozen functie gemaakt.
-- 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;
Verwante inhoud
- DROP SYNONIEM (Transact-SQL)
 - GEBEURTENISGEGEVENS (Transact-SQL)
 - SUBSIDIE (Transact-SQL)
 - Synoniemen (database-engine)