CREATE SYNONYM (Transact-SQL)
Crea un nuovo sinonimo.
Convenzioni della sintassi Transact-SQL
Sintassi
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
}
Argomenti
- schema_name_1
Specifica lo schema in cui viene creato il sinonimo. Se schema viene omesso, SQL Server 2005 utilizza lo schema predefinito dell'utente corrente.
- synonym_name
Nome del nuovo sinonimo.
- server_name
Indica il nome del server in cui è archiviato l'oggetto di base.
- database_name
Indica il nome del database in cui è archiviato l'oggetto di base. Se database_name viene omesso, viene utilizzato il database corrente.
- schema_name_2
Nome dello schema dell'oggetto di base. Se schema_name viene omesso, viene utilizzato lo schema predefinito dell'utente corrente.
- object_name
Nome dell'oggetto di base a cui fa riferimento il sinonimo.
Osservazioni
Non è necessario che l'oggetto di base sia esistente in fase di creazione del sinonimo. SQL Server verifica l'esistenza dell'oggetto di base in fase di esecuzione.
È possibile creare sinonimi per i tipi di oggetti seguenti:
Stored procedure di assembly (CLR) |
Funzione valutata a livello di tabella di assembly (CLR) |
Funzione scalare di assembly (CLR) |
Funzioni aggregate di aggregazione assembly (CLR) |
Procedura-filtro-replica |
Stored procedure estesa |
Funzione scalare di SQL |
Funzione valutata a livello di tabella di SQL |
Funzione SQL inline valutata a livello di tabella |
Stored procedure di SQL |
Vista |
Tabella1 (definito dall'utente) |
1 Include tabelle temporanee globali e locali
Non sono supportati i nomi composti da quattro parti per gli oggetti funzione di base.
È possibile creare, eliminare e fare riferimento ai sinonimi in SQL dinamico.
Autorizzazioni
Per poter creare un sinonimo in un determinato schema, un utente deve disporre dell'autorizzazione CREATE SYNONYM, oltre a disporre della proprietà dello schema o dell'autorizzazione ALTER SCHEMA.
L'autorizzazione CREATE SYNONYM è un'autorizzazione che può essere concessa.
[!NOTA] Per compilare l'istruzione CREATE SYNONYM non è necessaria l'autorizzazione sull'oggetto di base, poiché tutti i controlli delle autorizzazioni sull'oggetto di base sono rimandati fino alla fase di esecuzione.
A. Creazione di un sinonimo per un oggetto locale
Nell'esempio seguente viene prima creato un sinonimo per l'oggetto di base Product
nel databaseAdventureWorks
e quindi viene eseguita una query nel sinonimo.
USE tempdb;
GO
-- Create a synonym for the Product table in AdventureWorks.
CREATE SYNONYM MyProduct
FOR AdventureWorks.Production.Product;
GO
-- Query the Product table by using the synonym.
USE tempdb;
GO
SELECT ProductID, Name
FROM MyProduct
WHERE ProductID < 5;
GO
Set di risultati:
-----------------------
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B. Creazione di un sinonimo per l'oggetto remoto
Nell'esempio seguente, l'oggetto di base, Contact
, è contenuto in un server remoto denominato Server_Remote
.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO
Esempi
Vedere anche
Riferimento
DROP SYNONYM (Transact-SQL)
GRANT (Transact-SQL)
EVENTDATA (Transact-SQL)
Altre risorse
Utilizzo dei sinonimi (Motore di database)