Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoyEste explorador ya no se admite.
Actualice a Microsoft Edge para aprovechar las características y actualizaciones de seguridad más recientes, y disponer de soporte técnico.
Se aplica a: SQL Server
Azure SQL Database
Azure SQL Managed Instance
Crea un nuevo sinónimo.
Convenciones de sintaxis de Transact-SQL
Sintaxis de SQL Server:
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
}
Sintaxis de Azure SQL Database:
CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object>
<object> ::=
{
[ database_name. [ schema_name_2 ] . | schema_name_2. ] object_name
}
Especifica el esquema en el que se crea el sinónimo. Si schema_name no se especifica, SQL Server utiliza el esquema predeterminado del usuario actual.
El nombre del nuevo sinónimo.
El nombre del servidor en el que se encuentra el objeto base.
El nombre de la base de datos en la que se encuentra el objeto base. Si database_name no se especifica, se utiliza el nombre de la base de datos actual.
El nombre del esquema del objeto base. Si no se especifica schema_name, se utilizará el esquema predeterminado del usuario actual.
El nombre del objeto base al que hace referencia el sinónimo.
Nota
Azure SQL Database admite el formato de nombre de tres partes database_name.[schema_name].object_name
cuando database_name es la base de datos actual, o database_name es tempdb
y object_name empieza por #
.
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:
No se admiten nombres de cuatro partes para objetos base de función.
Los sinónimos se pueden crear, eliminar y referenciar en T-SQL dinámico.
Los sinónimos son específicos de la base de datos y no se puede acceder a ellos desde otras bases de datos.
Para crear un sinónimo en un esquema determinado, un usuario debe tener permiso CREATE SYNONYM
y ser propietario del esquema o tener permiso ALTER SCHEMA.
El permiso CREATE SYNONYM
es un permiso concedible.
Nota
No necesita permiso sobre el objeto base para compilar correctamente la instrucción CREATE SYNONYM
, porque toda la comprobación de permisos sobre el objeto base se aplaza hasta el tiempo de ejecución.
En el ejemplo siguiente, primero se crea un sinónimo para el objeto base Product
en la base de datos AdventureWorks2022
y, después, se consulta el sinónimo.
-- 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
Este 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)
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.AdventureWorks2022.HumanResources.Employee;
GO
En el ejemplo siguiente, se crea una función denominada dbo.OrderDozen
que aumenta los pedidos a 12 unidades. A continuación, en el ejemplo se crea el sinónimo dbo.CorrectOrder
para la función dbo.OrderDozen
.
-- 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;
Eventos
31 mar, 23 - 2 abr, 23
Evento de aprendizaje de SQL, Fabric y Power BI más grande. 31 de marzo – 2 de abril. Use el código FABINSIDER para ahorrar $400.
Regístrate hoy