Identificatori del databaseDatabase Identifiers

Il nome di un oggetto di database rappresenta l'identificatore dell'oggetto stesso.The database object name is referred to as its identifier. È possibile associare un identificatore a qualunque elemento di MicrosoftMicrosoft SQL ServerSQL Server ,Everything in MicrosoftMicrosoft SQL ServerSQL Server can have an identifier. ad esempio server, database e oggetti di database quali tabelle, viste, colonne, indici, trigger, procedure, vincoli, regole e così via.Servers, databases, and database objects, such as tables, views, columns, indexes, triggers, procedures, constraints, and rules, can have identifiers. Gli identificatori sono richiesti con la maggior parte degli oggetti. Per alcuni oggetti, quali i vincoli, sono facoltativi.Identifiers are required for most objects, but are optional for some objects such as constraints.

L'identificatore viene creato in fase di definizione dell'oggettoAn object identifier is created when the object is defined. e viene successivamente utilizzato per fare riferimento all'oggetto.The identifier is then used to reference the object. Ad esempio, l'istruzione seguente crea una tabella a cui viene associato l'identificatore TableXe due colonne a cui vengono associati gli identificatori 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))  

La tabella include inoltre un vincolo senza nome.This table also has an unnamed constraint. Il vincolo PRIMARY KEY è privo di identificatore.The PRIMARY KEY constraint has no identifier.

Le regole di confronto di un identificatore dipendono dal livello nel quale viene definito.The collation of an identifier depends on the level at which it is defined. Agli identificatori degli oggetti a livello di istanza, quali gli account di accesso e i nomi di database, vengono assegnate le regole di confronto predefinite dell'istanza.Identifiers of instance-level objects, such as logins and database names, are assigned the default collation of the instance. Agli identificatori degli oggetti di un database, quali tabelle, viste e nomi di colonna, vengono assegnate le regole di confronto predefinite del database.Identifiers of objects in a database, such as tables, views, and column names, are assigned the default collation of the database. Ad esempio, due tabelle i cui nomi si differenziano soltanto per l'utilizzo del maiuscolo e del minuscolo possono essere create in un database con regole di confronto in cui l'uso di maiuscole e minuscole è rilevante, ma non in un database con regole di confronto in cui l'uso di maiuscole e minuscole non è rilevante.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.

Nota

È necessario che i nomi di variabili o i parametri di funzioni e stored procedure siano conformi alle regole relative agli identificatori 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.

Classi di identificatoriClasses of Identifiers

Esistono due classi di identificatori:There are two classes of identifiers:

Identificatori regolariRegular identifiers
Sono conformi alle regole relative al formato degli identificatori.Comply with the rules for the format of identifiers. Gli identificatori regolari non vengono delimitati quando vengono utilizzati in istruzioni Transact-SQLTransact-SQL .Regular identifiers are not delimited when they are used in Transact-SQLTransact-SQL statements.

SELECT *  
FROM TableX  
WHERE KeyCol = 124  

Identificatori delimitatiDelimited identifiers
Sono racchiusi tra virgolette doppie (") o tra parentesi quadre ([ ]).Are enclosed in double quotation marks (") or brackets ([ ]). Gli identificatori conformi alle regole relative al formato degli identificatori possono non essere delimitati.Identifiers that comply with the rules for the format of identifiers might not be delimited. Esempio:For example:

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

All'interno di un'istruzione Transact-SQLTransact-SQL è necessario che gli identificatori non conformi alle regole relative agli identificatori siano delimitati.Identifiers that do not comply with all the rules for identifiers must be delimited in a Transact-SQLTransact-SQL statement. Esempio:For example:

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

Sia gli identificatori regolari che quelli delimitati devono includere da 1 a 128 caratteri.Both regular and delimited identifiers must contain from 1 through 128 characters. Gli identificatori delle tabelle temporanee locali possono includere al massimo 116 caratteri.For local temporary tables, the identifier can have a maximum of 116 characters.

Regole relative agli identificatori regolariRules for Regular Identifiers

È necessario che i nomi di variabili, funzioni e stored procedure siano conformi alle seguenti regole relative agli identificatori Transact-SQLTransact-SQL .The names of variables, functions, and stored procedures must comply with the following rules for Transact-SQLTransact-SQL identifiers.

  1. Il primo carattere deve essere uno dei seguenti:The first character must be one of the following:

    • Una lettera definita dallo standard Unicode 3,2,A letter as defined by the Unicode Standard 3.2. ovvero i caratteri dell'alfabeto latino a-z e A-Z e i caratteri di altre lingue.The Unicode definition of letters includes Latin characters from a through z, from A through Z, and also letter characters from other languages.

    • Il carattere di sottolineatura (), il simbolo di chiocciola (@) o il simbolo di cancelletto (#).The underscore (), at sign (@), or number sign (#).

      Alcuni caratteri utilizzati all'inizio di un identificatore assumono un significato particolare in SQL ServerSQL Server.Certain symbols at the beginning of an identifier have special meaning in SQL ServerSQL Server. Un identificatore regolare che inizia con il carattere @ indica sempre una variabile locale o un parametro e non può essere utilizzato per il nome di un tipo di oggetto diverso.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. il carattere # indica una tabella o una procedura temporanea,An identifier that starts with a number sign denotes a temporary table or procedure. mentre due simboli di cancelletto (##) indicano un oggetto temporaneo globale.An identifier that starts with double number signs (##) denotes a global temporary object. Nonostante sia possibile usare uno o due simboli di cancelletto all'inizio dei nomi di altri tipi di oggetti, è consigliabile non adottare questa tecnica.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.

      I nomi di alcune funzioni Transact-SQLTransact-SQL iniziano con due simboli di chiocciola (@@).Some Transact-SQLTransact-SQL functions have names that start with double at signs (@@). Per evitare confusione in merito a tali funzioni, è consigliabile non usare nomi che iniziano con @@.To avoid confusion with these functions, you should not use names that start with @@.

  2. I caratteri successivi possono includere gli elementi seguenti:Subsequent characters can include the following:

    • Lettere definite nello standard Unicode 3,2.Letters as defined in the Unicode Standard 3.2.

    • Numeri decimali inclusi nell'alfabeto Latino di base o in altri alfabeti nazionali.Decimal numbers from either Basic Latin or other national scripts.

    • Il simbolo di chiocciola, il simbolo di dollaro ($), il simbolo di cancelletto o il carattere di sottolineatura.The at sign, dollar sign ($), number sign, or underscore.

  3. L'identificatore non deve essere una parola riservata Transact-SQLTransact-SQL .The identifier must not be a Transact-SQLTransact-SQL reserved word. SQL ServerSQL Server riserva sia le versioni maiuscole sia quelle minuscole delle parole riservate. reserves both the uppercase and lowercase versions of reserved words. Quando vengono utilizzati in istruzioni Transact-SQLTransact-SQL , gli identificatori non conformi a queste regole devono essere racchiusi tra virgolette doppie o parentesi quadre.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. Le parole riservate dipendono dal livello di compatibilità del database.The words that are reserved depend on the database compatibility level. Questo livello può essere impostato usando l'istruzione ALTER DATABASE .This level can be set by using the ALTER DATABASE statement.

  4. Non sono consentiti spazi incorporati o caratteri speciali.Embedded spaces or special characters are not allowed.

  5. Non sono consentiti caratteri supplementari.Supplementary characters are not allowed.

    Quando vengono utilizzati in istruzioni Transact-SQLTransact-SQL , gli identificatori non conformi a queste regole devono essere racchiusi tra virgolette doppie o parentesi quadre.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.

Nota

Alcune regole relative al formato degli identificatori regolari dipendono dal livello di compatibilità del database.Some rules for the format of regular identifiers depend on the database compatibility level. È possibile impostare tale livello con ALTER DATABASE.This level can be set by using ALTER DATABASE.

Vedere ancheSee 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)
Parole chiave riservate (Transact-SQL) Reserved Keywords (Transact-SQL)
SELECT (Transact-SQL) SELECT (Transact-SQL)
UPDATE (Transact-SQL)UPDATE (Transact-SQL)