Hablemos de sinónimos – Viernes de SQL Server

TL;DR En nuestro idioma existen los sinónimos, palabras que nos permiten decir algo de una forma diferente. En SQL Server tenemos también sinónimos pero ¿Para qué nos sirven los sinónimos en SQL Server?.

Tal como en nuestro lenguaje necesitamos en algunas ocasiones, utilizar términos diferentes para referirnos a algo. Imaginemos que tenemos una base de datos llamada Personajes y otra llamada Cuentos. Dentro de la base de datos Personajes queremos realizar una consulta en la que se utilizan tablas de Cuentos ¿Qué hacemos?.

Seguramente utilizamos [Cuentos].[Tabla] ¿Cierto?. Bien, ahora dicha consulta la convertimos en un procedimiento almacenado y un tiempo después la base de datos Cuentos para a llamarse Historias. El procedimiento almacenado deja de funcionar, aquí entran los sinónimos, podemos utilizar un sinónimo para que las llamadas a [Cuentos] sean convertidas a [Historias] y nos evitaremos reescribir una cantidad de consultas o procedimientos almacenados.

Crear un sinónimo

Para crear un sinónimo basta con ejecutar:

CREATE SYNONYM NombreObjecto
FOR Servidor.BaseDeDatos.Objeto  
GO

Por ejemplo:

Crearemos un sinónimo para la tabla [Cuentos] con el nombre de [Historias]

CREATE SYNONYM [Tabla]
FOR [Historias].[Tabla]

O podríamos por ejemplo, mover nuestra base de datos [Cuentos] a otro servidor y además fue renombrada a [Historias]

CREATE SYNONYM [Tabla]
FOR [Servidor2].[Historias].[Tabla]