Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
platí pro:SQL Server
Azure SQL Database
Azure SQL Managed Instance
SQL databáze v Microsoft Fabric
Vytvoří nové synonymum.
Syntaxe
Syntaxe SQL Serveru:
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 a SQL databáze v 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
Určuje schéma, ve kterém se synonymum vytvoří. Pokud není zadaný schema_name , SQL Server použije výchozí schéma aktuálního uživatele.
synonym_name
Název nového synonyma
server_name
Název serveru, na kterém se nachází základní objekt.
database_name
Název databáze, ve které se nachází základní objekt. Pokud není zadaný database_name , použije se název aktuální databáze.
schema_name_2
Název schématu základního objektu. Pokud není zadaný schema_name , použije se výchozí schéma aktuálního uživatele.
object_name
Název základního objektu, na který odkazuje synonyma.
Poznámka:
Azure SQL Database a SQL databáze v Microsoft Fabric podporují tříčlenný formát database_name.[schema_name].object_name názvu, když je database_name aktuální databáze, nebo database_name je tempdb a object_name začíná na #.
Poznámky
Základní objekt nemusí existovat v době vytváření synonym. SQL Server kontroluje existenci základního objektu za běhu.
Synonyma lze vytvořit pro následující typy objektů:
- Uložená procedura sestavení (CLR)
- Funkce s hodnotami tabulky sestavení (CLR)
- Skalární funkce sestavení (CLR)
- Agregační funkce sestavení (CLR)
- Postup filtrování replikace
- Rozšířená uložená procedura
- Skalární funkce T-SQL
- Funkce T-SQL table-valued
- Funkce T-SQL inline-table-valued
- Uložená procedura T-SQL
- Tabulka (uživatelem definovaná, zahrnuje místní a globální dočasné tabulky)
- Zobrazit
Názvy čtyř částí pro základní objekty funkcí se nepodporují.
Synonyma lze vytvořit, vyhodit a odkazovat v dynamickém T-SQL.
Synonyma jsou specifická pro databázi a ostatní databáze k němu nemají přístup.
Povolení
Pokud chcete vytvořit synonymum v daném schématu, musí mít CREATE SYNONYM uživatel oprávnění a buď vlastní schéma, nebo má ALTER SCHEMA oprávnění.
Oprávnění CREATE SYNONYM je udělitelné oprávnění.
Poznámka:
K úspěšnému CREATE SYNONYM kompilaci příkazu nepotřebujete oprávnění k základnímu objektu, protože veškerá kontrola oprávnění základního objektu je odložena do doby běhu.
Examples
A. Vytvoření synonyma pro místní objekt
Následující příklad nejprve vytvoří synonymum pro základní objekt v ProductAdventureWorks2025 databázi a potom se dotazuje synonyma.
-- 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
Tady je soubor výsledků.
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B. Vytvoření synonyma pro vzdálený objekt
V následujícím příkladu se základní objekt Contactnachází na vzdáleném serveru s názvem Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2022.HumanResources.Employee;
GO
C. Vytvoření synonyma pro uživatelem definovanou funkci
Následující příklad vytvoří funkci s názvem dbo.OrderDozen , která zvyšuje množství objednávek na 12 jednotek. Příklad pak vytvoří synonymum dbo.CorrectOrder pro dbo.OrderDozen funkci.
-- 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;
Související obsah
- VYHOĎTE SYNONYMUM (Transact-SQL)
- EVENTDATA (Transact-SQL)
- GRANT (Transact-SQL)
- Synonyma (databázový stroj)