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
Base de Dados SQL do Azure
Instância Gerida do Azure SQL
Azure Synapse Analytics
Sistema de Plataforma de Análise (PDW)
Ponto de Extremidade de Análise SQL no Microsoft Fabric
Armazém no Microsoft Fabric
Base de Dados SQL no Microsoft Fabric
O nome do objeto de banco de dados é chamado de seu identificador.
Servidores, bancos de dados e objetos de banco de dados, como tabelas, exibições, colunas, índices, gatilhos, procedimentos, restrições e regras, podem ter identificadores. A maioria dos objetos requer identificadores, mas para alguns objetos, como as restrições, os identificadores são opcionais.
Cria-se um identificador de objeto quando se define o objeto. Use o identificador para referenciar o objeto. Por exemplo, a instrução a seguir cria uma tabela com o identificador TableXe duas colunas com os identificadores KeyCol e Description:
CREATE TABLE TableX (
KeyCol INT PRIMARY KEY,
Description NVARCHAR(80)
);
Esta tabela também tem uma restrição sem nome. A restrição de chave primária não tem identificador, e por isso seria atribuído um nome gerado pelo sistema como PK__TableX__D7CB9CCCEEF0806C, que se pode observar em vistas de metadados do sistema como sys.key_constraints.
Os nomes das restrições e outros objetos com âmbito de esquema devem ser únicos dentro de um esquema de base de dados. Por exemplo, duas restrições principais de chave não podem partilhar um nome. No entanto, os nomes das colunas só precisam de ser únicos dentro de cada tabela, não dentro do esquema.
A ordenação de um identificador depende do nível em que é definido.
- A colação padrão da instância é atribuída a identificadores de objetos ao nível da instância, como logins e nomes de bases de dados.
- A ordenação padrão da base de dados é atribuída a identificadores de objetos, como tabelas, vistas e nomes de colunas. Por exemplo, pode criar duas tabelas com nomes que diferem apenas no caso numa base de dados que tenha colação sensível a maiúsculas e minúsculas, mas não pode criá-las numa base de dados que tenha colação insensível a maiúsculas e minúsculas.
Note
Os nomes das variáveis, ou os parâmetros de funções e procedimentos armazenados devem estar em conformidade com as regras para Transact-SQL identificadores.
Classes de identificadores
Existem duas classes de identificadores:
Os identificadores regulares cumprem as regras relativas ao formato dos identificadores. Os identificadores regulares não são delimitados quando são usados em instruções Transact-SQL.
USE AdventureWorks2022; GO SELECT * FROM HumanResources.Employee WHERE NationalIDNumber = 153479919;Os identificadores delimitados estão entre aspas duplas (
") ou parênteses ([e]). Os identificadores que cumprem as regras para o formato dos identificadores podem não ser delimitados. Por exemplo:USE AdventureWorks2022; GO SELECT * FROM [HumanResources].[Employee] --Delimiter is optional. WHERE [NationalIDNumber] = 153479919 --Delimiter is optional.
Os identificadores que não estão em conformidade com todas as regras para identificadores devem ser delimitados em uma declaração Transact-SQL. Por exemplo:
USE AdventureWorks2022;
GO
--Identifier contains a space and uses a reserved keyword.
CREATE TABLE [SalesOrderDetail Table] (
[Order] INT NOT NULL,
[SalesOrderDetailID] INT IDENTITY(1, 1) NOT NULL,
[OrderQty] SMALLINT NOT NULL,
[ProductID] INT NOT NULL,
[UnitPrice] MONEY NOT NULL,
[UnitPriceDiscount] MONEY NOT NULL,
[ModifiedDate] DATETIME NOT NULL,
CONSTRAINT [PK_SalesOrderDetail_Order_SalesOrderDetailID] PRIMARY KEY CLUSTERED (
[Order] ASC,
[SalesOrderDetailID] ASC
)
);
GO
SELECT *
FROM [SalesOrderDetail Table] --Identifier contains a space and uses a reserved keyword.
WHERE [Order] = 10; --Identifier is a reserved keyword.
Os identificadores regulares e delimitados devem conter de 1 a 128 caracteres. Para tabelas temporárias locais, o identificador pode ter no máximo 116 caracteres.
Regras para identificadores regulares
Os nomes das variáveis, funções e procedimentos armazenados devem seguir estas regras para Transact-SQL identificadores.
O primeiro carácter deve ser um dos seguintes caracteres:
Uma letra conforme definido pela Norma Unicode 3.2. A definição Unicode de letras inclui caracteres latinos de
aatéz, deAatéZ, e também caracteres de letras de outros idiomas.O sublinhado (
_), no sinal (@), ou no sinal numérico (#).Certos símbolos no início de um identificador têm um significado especial no SQL Server. Um identificador regular que começa com o sinal at sempre indica uma variável ou parâmetro local e não pode ser usado como o nome de qualquer outro tipo de objeto. Um identificador que começa com um sinal numérico indica uma tabela ou procedimento temporário. Um identificador que começa com sinais numéricos duplos (
##) indica um objeto temporário global. Embora os caracteres de sinal numérico ou de sinal de número duplo possam ser usados para iniciar os nomes de outros tipos de objetos, não recomendamos essa prática.Algumas funções Transact-SQL têm nomes que começam com arrobas duplas (
@@). Para evitar confusão com estas funções, não use nomes que comecem por@@.
Os caracteres subsequentes podem incluir a seguinte lista:
Letras conforme definido na Norma Unicode 3.2.
Números decimais do latim básico ou de outros alfabetos nacionais.
O sinal de arroba (
@), cifrão ($), sinal numérico (#), ou sublinhado (_).
O identificador não deve ser uma palavra reservada Transact-SQL. O SQL Server reserva as versões maiúsculas e minúsculas das palavras reservadas. Quando usar identificadores em instruções Transact-SQL, delimite identificadores que não cumpram estas regras usando aspas duplas ou parênteses. As palavras reservadas dependem do nível de compatibilidade do banco de dados. Defina o nível de compatibilidade da base de dados usando a instrução ALTER DATABASE compatibility level .
Não uses espaços embutidos ou caracteres especiais.
Não uses personagens suplementares.
Quando usar identificadores em instruções Transact-SQL, delimite identificadores que não cumpram estas regras usando aspas duplas ou parênteses.
Algumas regras para o formato de identificadores regulares dependem do nível de compatibilidade do banco de dados.
Agrupamento de catálogos no Banco de Dados SQL do Azure
Não é possível alterar ou definir o agrupamento lógico do servidor no Banco de Dados SQL do Azure. No entanto, você pode configurar os agrupamentos de cada banco de dados separadamente para dados no banco de dados e para catálogo. O agrupamento de catálogo determina o agrupamento de metadados do sistema, como identificadores de objeto. Pode especificar ambas as coletações de forma independente quando cria a base de dados no portal Azure, no T-SQL com o CREATE DATABASE, ou no PowerShell com o New-AzSqlDatabase.
Para obter detalhes e exemplos, consulte CREATE DATABASE. Especifique um agrupamento para o banco de dados (COLLATE) e um agrupamento de catálogo para metadados do sistema e identificadores de objeto (CATALOG_COLLATION).
Agrupamento de catálogos no banco de dados SQL no Microsoft Fabric
Atualmente, por padrão, a colação de uma base de dados SQL no Fabric é SQL_Latin1_General_CP1_CI_AS, mas isto pode ser configurado durante a implementação. A compilação não pode ser atualizada após a implementação. Está disponível o suporte para ordenações em colunas individuais. Para mais informações sobre opções de implementação, consulte Opções para criar uma base de dados SQL no Fabric.