Identificadores de banco de dadosDatabase Identifiers

APLICA-SE A: simSQL Server simBanco de Dados SQL do Azure simSQL Data Warehouse do Azure simParallel Data Warehouse APPLIES TO: yesSQL Server yesAzure SQL Database yesAzure SQL Data Warehouse yesParallel Data Warehouse

O nome do objeto de banco de dados é conhecido como identificador.The database object name is referred to as its identifier. Tudo no MicrosoftMicrosoft SQL ServerSQL Server pode ter um identificador.Everything in MicrosoftMicrosoft SQL ServerSQL Server can have an identifier. 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.Servers, databases, and database objects, such as tables, views, columns, indexes, triggers, procedures, constraints, and rules, can have identifiers. Os identificadores são necessários para a maioria dos objetos, mas são opcionais para alguns objetos, como restrições.Identifiers are required for most objects, but are optional for some objects such as constraints.

O identificador de objeto é criado quando o objeto é definido.An object identifier is created when the object is defined. O identificador é utilizado para referenciar o objeto.The identifier is then used to reference the object. Por exemplo, a seguinte instrução cria uma tabela com o identificador TableXe duas colunas com os identificadores KeyCol e Description:For example, the following statement creates a table with the identifier TableX, and two columns with the identifiers KeyCol and Description:

CREATE TABLE TableX  
(KeyCol INT PRIMARY KEY, Description nvarchar(80))  

Essa tabela também tem uma restrição sem-nome.This table also has an unnamed constraint. A restrição PRIMARY KEY não tem identificador.The PRIMARY KEY constraint has no identifier.

A ordenação de um identificador depende do nível em que está definido.The collation of an identifier depends on the level at which it is defined. Os identificadores de objetos no nível de instância, como logons e nomes de banco de dados, são atribuídos à ordenação padrão da instância.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Os identificadores de objetos em um banco de dados, como tabelas, exibições e nomes de coluna, são atribuídos à ordenação padrão do banco de dados.Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database. Por exemplo, duas tabelas com nomes que se diferem apenas em maiúsculas e minúsculas podem ser criadas em um banco de dados que possui ordenação que diferencia maiúsculas e minúsculas, mas não podem ser criadas em um banco de dados que tem ordenação que não diferencia maiúsculas e minúsculas.For example, two tables with names that differ only in case can be created in a database that has case-sensitive collation, but cannot be created in a database that has case-insensitive collation.

Observação

Os nomes de variáveis ou os parâmetros de funções e procedimentos armazenados devem obedecer às regras para identificadores Transact-SQLTransact-SQL .The names of variables, or the parameters of functions and stored procedures must comply with the rules for Transact-SQLTransact-SQL identifiers.

Classes de identificadoresClasses of Identifiers

Há duas classes de identificadores:There are two classes of identifiers:

Identificadores normaisRegular identifiers
Estão em conformidade com as regras de formato de identificadores.Comply with the rules for the format of identifiers. Os identificadores normais não são delimitados quando utilizados em instruções Transact-SQLTransact-SQL .Regular identifiers are not delimited when they are used in Transact-SQLTransact-SQL statements.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

Identificadores delimitadosDelimited identifiers
Estão entre aspas duplas (") ou colchetes ([]).Are enclosed in double quotation marks (") or brackets ([ ]). Os identificadores que estão em conformidade com as regras de formato de identificadores podem não ser delimitados.Identifiers that comply with the rules for the format of identifiers might not be delimited. Por exemplo:For example:

SELECT *  
FROM [TableX]         --Delimiter is optional.  
WHERE [KeyCol] = 124  --Delimiter is optional.  

Os identificadores que não estão em conformidade com todas as regras para identificadores devem ser delimitados em uma instrução Transact-SQLTransact-SQL .Identifiers that do not comply with all the rules for identifiers must be delimited in a Transact-SQLTransact-SQL statement. Por exemplo:For example:

SELECT *  
FROM [My Table]      --Identifier contains a space and uses a reserved keyword.  
WHERE [order] = 10   --Identifier is a reserved keyword.  

Tanto os identificadores normais quanto os delimitados devem conter de 1 a 128 caracteres.Both regular and delimited identifiers must contain from 1 through 128 characters. Para tabelas temporárias locais, o identificador pode ter no máximo 116 caracteres.For local temporary tables, the identifier can have a maximum of 116 characters.

Regras para identificadores normaisRules for Regular Identifiers

Os nomes de variáveis, funções e procedimentos armazenados devem obedecer às regras de identificadores Transact-SQLTransact-SQL .The names of variables, functions, and stored procedures must comply with the following rules for Transact-SQLTransact-SQL identifiers.

  1. O primeiro caractere deve ser um dos seguintes:The first character must be one of the following:

    • Uma letra, como definido pelo Unicode Standard 3.2.A letter as defined by the Unicode Standard 3.2. A definição de letras do Unicode inclui caracteres latinos de a até z, de A até Z, além de caracteres de letras de outros idiomas.The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.

    • Sublinhado (), arroba (@) ou sinal de número (#).The underscore (), at sign (@), or number sign (#).

      Determinados símbolos no começo de um identificador possuem um significado especial no SQL ServerSQL Server.Certain symbols at the beginning of an identifier have special meaning in SQL ServerSQL Server. Um identificador normal iniciado com arroba denota sempre uma variável local ou parâmetro e não pode ser utilizado como nome de qualquer outro tipo de objeto.A regular identifier that starts with the at sign always denotes a local variable or parameter and cannot be used as the name of any other type of object. Um identificador iniciado com um sinal de número denota uma tabela temporária ou procedimento.An identifier that starts with a number sign denotes a temporary table or procedure. Um identificador iniciado com dois sinais de número (##) denota um objeto temporário global.An identifier that starts with double number signs (##) denotes a global temporary object. Embora possa ser utilizado um caractere de sinal de número ou dois sinais de número para começar os nomes de outros tipos de objetos, não recomendamos essa prática.Although the number sign or double number sign characters can be used to begin the names of other types of objects, we do not recommend this practice.

      Algumas funções do Transact-SQLTransact-SQL têm nomes iniciados com dois sinais de arroba (@@).Some Transact-SQLTransact-SQL functions have names that start with double at signs (@@). Para evitar confusão com essas funções, você não deverá usar nomes iniciados por @@.To avoid confusion with these functions, you should not use names that start with @@.

  2. Os caracteres subsequentes podem incluir:Subsequent characters can include the following:

    • Letras, como definido no Unicode Standard 3.2.Letters as defined in the Unicode Standard 3.2.

    • Números decimais do latim básico ou outros scripts nacionais.Decimal numbers from either Basic Latin or other national scripts.

    • Arroba (@), cifrão ($), sinal de número (#) ou sublinhado.The at sign, dollar sign ($), number sign, or underscore.

  3. O identificador não deve ser uma palavra reservada do Transact-SQLTransact-SQL .The identifier must not be a Transact-SQLTransact-SQL reserved word. SQL ServerSQL Server reserva as versões maiúscula e minúscula de palavras reservadas.reserves both the uppercase and lowercase versions of reserved words. Quando identificadores são usados nas instruções Transact-SQLTransact-SQL , os identificadores que não estiverem de acordo com essas regras deverão ser delimitados por aspas duplas ou colchetes.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets. As palavras reservadas dependem do nível de compatibilidade do banco de dados.The words that are reserved depend on the database compatibility level. Esse nível pode ser definido por meio da instrução ALTER DATABASE .This level can be set by using the ALTER DATABASE statement.

  4. Não são permitidos espaços ou caracteres especiais.Embedded spaces or special characters are not allowed.

  5. Não são permitidos caracteres adicionais.Supplementary characters are not allowed.

Quando identificadores são usados nas instruções Transact-SQLTransact-SQL , os identificadores que não estiverem de acordo com essas regras deverão ser delimitados por aspas duplas ou colchetes.When identifiers are used in Transact-SQLTransact-SQL statements, the identifiers that do not comply with these rules must be delimited by double quotation marks or brackets.

Observação

As regras do formato de identificadores normais dependem do nível de compatibilidade do banco de dados.Some rules for the format of regular identifiers depend on the database compatibility level. Esse nível pode ser definido por meio de ALTER DATABASE.This level can be set by using ALTER DATABASE.

Consulte TambémSee Also

ALTER TABLE (Transact-SQL) ALTER TABLE (Transact-SQL)
CREATE DATABASE (SQL Server Transact-SQL) CREATE DATABASE (SQL Server Transact-SQL)
CREATE DEFAULT (Transact-SQL) CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE (Transact-SQL) CREATE PROCEDURE (Transact-SQL)
CREATE RULE (Transact-SQL) CREATE RULE (Transact-SQL)
CREATE TABLE (Transact-SQL) CREATE TABLE (Transact-SQL)
CREATE TRIGGER (Transact-SQL) CREATE TRIGGER (Transact-SQL)
CREATE VIEW (Transact-SQL) CREATE VIEW (Transact-SQL)
DECLARE @local_variable (Transact-SQL) DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL) DELETE (Transact-SQL)
INSERT (Transact-SQL) INSERT (Transact-SQL)
Palavras-chave reservadas (Transact-SQL) Reserved Keywords (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
UPDATE (Transact-SQL)UPDATE (Transact-SQL)