Anteckning
Åtkomst till den här sidan kräver auktorisering. Du kan prova att logga in eller ändra kataloger.
Åtkomst till den här sidan kräver auktorisering. Du kan prova att ändra kataloger.
Gäller för:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL-databas i Förhandsversion av Microsoft Fabric
Skapar en ny synonym.
Transact-SQL syntaxkonventioner
Syntax
SQL Server-syntax:
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 och SQL Database i Förhandsversionssyntax för 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
Anger det schema där synonymen skapas. Om schema_name inte anges använder SQL Server den aktuella användarens standardschema.
synonym_name
Namnet på den nya synonymen.
server_name
Namnet på servern där basobjektet finns.
database_name
Namnet på databasen där basobjektet finns. Om database_name inte anges används namnet på den aktuella databasen.
schema_name_2
Namnet på schemat för basobjektet. Om schema_name inte anges används standardschemat för den aktuella användaren.
object_name
Namnet på basobjektet som synonymen refererar till.
Anmärkning
Azure SQL Database och SQL Database i Microsoft Fabric Preview har stöd för namnformatet database_name.[schema_name].object_name i tre delar när database_name är den aktuella databasen, eller database_name är tempdb och object_name börjar med #.
Anmärkningar
Basobjektet behöver inte finnas när synonymen skapas. SQL Server söker efter förekomsten av basobjektet vid körning.
Synonymer kan skapas för följande typer av objekt:
- Lagrad procedur för sammansättning (CLR)
- Tabellvärdesfunktion för sammansättning (CLR)
- Skalär sammansättningsfunktion (CLR)
- Sammansättningsfunktioner (CLR)
- Replikeringsfilterprocedur
- Utökad lagrad procedur
- T-SQL-skalär funktion
- T-SQL-tabellvärdesfunktion
- Funktionen T-SQL inline-table-valued
- Lagrad T-SQL-procedur
- Tabell (användardefinierad, innehåller lokala och globala temporära tabeller)
- View
Fyradelade namn för funktionsbasobjekt stöds inte.
Synonymer kan skapas, tas bort och refereras till i dynamisk T-SQL.
Synonymer är databasspecifika och kan inte nås av andra databaser.
Permissions
Om du vill skapa en synonym i ett visst schema måste en användare ha CREATE SYNONYM behörighet och antingen äga schemat eller ha ALTER SCHEMA behörighet.
Behörigheten CREATE SYNONYM är en behörighet som kan beviljas.
Anmärkning
Du behöver inte behörighet för basobjektet för att kompilera -instruktionen CREATE SYNONYM , eftersom all behörighetskontroll av basobjektet skjuts upp till körningstiden.
Examples
A. Skapa en synonym för ett lokalt objekt
I följande exempel skapas först en synonym för basobjektet i ProductAdventureWorks2022 databasen och frågar sedan synonymen.
-- 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
Här är resultatet.
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B. Skapa en synonym till fjärrobjekt
I följande exempel finns basobjektet , Contactpå en fjärrserver med namnet Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2022.HumanResources.Employee;
GO
C. Skapa en synonym för en användardefinierad funktion
I följande exempel skapas en funktion med namnet dbo.OrderDozen som ökar orderbeloppen till 12 enheter. Exemplet skapar sedan synonymen dbo.CorrectOrderdbo.OrderDozen för funktionen.
-- 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;
Relaterat innehåll
- SLÄPP SYNONYM (Transact-SQL)
- HÄNDELSEDATA (Transact-SQL)
- BIDRAG (Transact-SQL)
- Synonymer (databasmotor)