Condividi tramite


CREATE SYNONYM (Transact-SQL)

Crea un nuovo sinonimo.

Icona di collegamento a un argomentoConvenzioni 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)

Guida in linea e informazioni

Assistenza su SQL Server 2005