CREATE SYNONYM (Transact-SQL)

Crea un nuevo sinónimo.

Icono de vínculo a temasConvenciones de sintaxis de Transact-SQL

Sintaxis

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
}

Argumentos

  • schema_name_1
    Especifica el esquema en el que se crea el sinónimo. Si no se especifica schema, SQL Server 2005 utiliza el esquema predeterminado del usuario actual.
  • synonym_name
    Es el nombre del nuevo sinónimo.
  • server_name
    Es el nombre del servidor donde se encuentra el objeto base.
  • database_name
    Es el nombre de la base de datos donde se encuentra el objeto base. Si no se especifica database_name, se utiliza el nombre de la base de datos actual.
  • schema_name_2
    Es el nombre del esquema del objeto base. Si no se especifica schema_name, se utiliza el esquema predeterminado del usuario actual.
  • object_name
    Es el nombre del objeto base al que hace referencia el sinónimo.

Notas

No es necesario que el objeto base exista en el momento de crear el sinónimo. SQL Server comprueba la existencia del objeto base en tiempo de ejecución.

Se pueden crear sinónimos para los siguientes tipos de objetos:

Procedimiento almacenado del ensamblado (CLR)

Función con valores de tabla del ensamblado (CLR)

Función escalar del ensamblado (CLR)

Funciones de agregado del ensamblado (CLR)

Procedimiento de filtro de réplica

Procedimiento almacenado extendido

Función escalar de SQL

Función SQL con valores de tabla

Función SQL con valores de tabla en línea

Procedimiento almacenado de SQL

Vista

Tabla1 (definida por el usuario)

1 Incluye tablas temporales locales y globales

No pueden usarse nombres de cuatro partes para objetos base de función.

Es posible crear, quitar y hacer referencia a sinónimos en SQL dinámico.

Permisos

Para crear un sinónimo en un esquema determinado, el usuario debe tener el permiso CREATE SYNONYM y ser propietario del esquema o tener el permiso ALTER SCHEMA.

El permiso CREATE SYNONYM se puede conceder.

[!NOTA] No se necesitan permisos en el objeto base para compilar correctamente la instrucción CREATE SYNONYM, porque la comprobación de los permisos para el objeto base no se realiza hasta el momento de la ejecución.

A. Crear un sinónimo para un objeto local

En el ejemplo siguiente, primero se crea un sinónimo para el objeto base (Product) en la base de datos AdventureWorks y, después, se consulta el sinónimo.

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

Éste es el conjunto de resultados.

-----------------------
ProductID   Name                      
----------- --------------------------
1           Adjustable Race
2           Bearing Ball
3           BB Ball Bearing
4           Headset Ball Bearings
(4 row(s) affected)

B. Crear un sinónimo de un objeto remoto

En el ejemplo siguiente, el objeto base (Contact) reside en un servidor remoto denominado Server_Remote.

EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks.HumanResources.Employee;
GO

Ejemplos

Vea también

Referencia

DROP SYNONYM (Transact-SQL)
GRANT (Transact-SQL)
EVENTDATA (Transact-SQL)

Otros recursos

Usar sinónimos (motor de base de datos)

Ayuda e información

Obtener ayuda sobre SQL Server 2005