Nota
O acesso a esta página requer autorização. Pode tentar iniciar sessão ou alterar os diretórios.
O acesso a esta página requer autorização. Pode tentar alterar os diretórios.
Aplica-se a:SQL Server
Azure SQL Database
Azure SQL Managed Instance
Base de dados SQL no Microsoft Fabric
Cria um novo sinônimo.
Transact-SQL convenções de sintaxe
Sintaxe
Sintaxe do 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
}
Azure SQL Database e SQL Database na sintaxe Microsoft Fabric:
CREATE SYNONYM [ schema_name_1. ] synonym_name FOR <object>
<object> ::=
{
[ database_name. [ schema_name_2 ] . | schema_name_2. ] object_name
}
Arguments
schema_name_1
Especifica o esquema no qual o sinônimo é criado. Se schema_name não for especificado, o SQL Server usará o esquema padrão do usuário atual.
synonym_name
O nome do novo sinónimo.
server_name
O nome do servidor no qual o objeto base está localizado.
database_name
O nome do banco de dados no qual o objeto base está localizado. Se database_name não for especificado, o nome do banco de dados atual será usado.
schema_name_2
O nome do esquema do objeto base. Se schema_name não for especificado, o esquema padrão do usuário atual será usado.
object_name
O nome do objeto base ao qual o sinônimo faz referência.
Observação
Azure SQL Database e SQL Database no Microsoft Fabric suportam o formato database_name.[schema_name].object_name de nome em três partes quando o database_name é a base de dados atual, ou quando o database_name é tempdb e o object_name começa com #.
Observações
O objeto base não precisa existir no tempo de criação do sinônimo. O SQL Server verifica a existência do objeto base em tempo de execução.
Sinônimos podem ser criados para os seguintes tipos de objetos:
- Procedimento armazenado de montagem (CLR)
- Função com valor de tabela Assembly (CLR)
- Função escalar de montagem (CLR)
- Funções agregadas de montagem (CLR)
- Replicação-filtro-procedimento
- Procedimento armazenado estendido
- Função escalar T-SQL
- Função com valor de tabela T-SQL
- Função com valor de tabela embutida T-SQL
- Procedimento armazenado T-SQL
- Tabela (definida pelo usuário, inclui tabelas temporárias locais e globais)
- View
Não há suporte para nomes de quatro partes para objetos de base de função.
Os sinônimos podem ser criados, descartados e referenciados no T-SQL dinâmico.
Os sinônimos são específicos do banco de dados e não podem ser acessados por outros bancos de dados.
Permissions
Para criar um sinônimo em um determinado esquema, um usuário deve ter CREATE SYNONYM permissão e possuir o esquema ou ter ALTER SCHEMA permissão.
A CREATE SYNONYM permissão é uma permissão concedida.
Observação
Você não precisa de permissão no objeto base para compilar com êxito a CREATE SYNONYM instrução, porque toda a verificação de permissão no objeto base é adiada até o tempo de execução.
Examples
A. Criar um sinônimo para um objeto local
O exemplo a seguir primeiro cria um sinônimo para o objeto base, Product no banco de dados e, em AdventureWorks2025 seguida, consulta o 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
Aqui está o conjunto de resultados.
ProductID Name
----------- --------------------------
1 Adjustable Race
2 Bearing Ball
3 BB Ball Bearing
4 Headset Ball Bearings
(4 row(s) affected)
B. Criar um sinônimo de objeto remoto
No exemplo a seguir, o objeto base, Contact, reside em um servidor remoto chamado Server_Remote.
EXEC sp_addlinkedserver Server_Remote;
GO
USE tempdb;
GO
CREATE SYNONYM MyEmployee FOR Server_Remote.AdventureWorks2022.HumanResources.Employee;
GO
C. Criar um sinônimo para uma função definida pelo usuário
O exemplo a seguir cria uma função chamada dbo.OrderDozen que aumenta os valores de ordem para 12 unidades. Em seguida, o exemplo cria o sinônimo dbo.CorrectOrder para a dbo.OrderDozen função.
-- 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;
Conteúdo relacionado
- SINÓNIMO DE GOTA (Transact-SQL)
- EVENTDATA (Transact-SQL)
- SUBVENÇÃO (Transact-SQL)
- Sinônimos (Mecanismo de Banco de Dados)