Identificatori del database
Il nome di un oggetto di database rappresenta l'identificatore dell'oggetto stesso. È possibile associare un identificatore a qualunque elemento di Microsoft SQL Server, ad esempio server, database e oggetti di database quali tabelle, viste, colonne, indici, trigger, procedure, vincoli, regole e così via. Gli identificatori sono richiesti con la maggior parte degli oggetti. Per alcuni oggetti, quali i vincoli, sono facoltativi.
L'identificatore viene creato in fase di definizione dell'oggetto e viene successivamente utilizzato per fare riferimento all'oggetto. Ad esempio, l'istruzione seguente crea una tabella a cui viene associato l'identificatore TableX e due colonne a cui vengono associati gli identificatori KeyCol e Description:
CREATE TABLE TableX
(KeyCol INT PRIMARY KEY, Description nvarchar(80))
La tabella include inoltre un vincolo senza nome. Il vincolo PRIMARY KEY è privo di identificatore.
Le regole di confronto di un identificatore dipendono dal livello nel quale viene definito. 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. Agli identificatori degli oggetti di un database, quali tabelle, viste e nomi di colonna, vengono assegnate le regole di confronto predefinite del 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.
[!NOTA]
È necessario che i nomi di variabili, funzioni e stored procedure siano conformi alle regole relative agli identificatori Transact-SQL.
Classi di identificatori
Esistono due classi di identificatori:
Identificatori regolari
Sono conformi alle regole relative al formato degli identificatori. Gli identificatori regolari non vengono delimitati quando vengono utilizzati in istruzioni Transact-SQL.SELECT * FROM TableX WHERE KeyCol = 124
Identificatori delimitati
Sono racchiusi tra virgolette doppie (") o tra parentesi quadre ([ ]). Gli identificatori conformi alle regole relative al formato degli identificatori possono non essere delimitati. Ad esempio:SELECT * FROM [TableX] --Delimiter is optional. WHERE [KeyCol] = 124 --Delimiter is optional.
All'interno di un'istruzione Transact-SQL è necessario che gli identificatori non conformi alle regole relative agli identificatori siano delimitati. Ad esempio:
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 essere composti da un numero di caratteri compreso tra 1 e 128. Gli identificatori delle tabelle temporanee locali possono includere al massimo 116 caratteri.
Parole riservate
L'identificatore non deve essere una parola riservata Transact-SQL. SQL Server riserva sia le versioni maiuscole sia quelle minuscole delle parole riservate. Quando vengono utilizzati in istruzioni Transact-SQL, gli identificatori non conformi a queste regole devono essere racchiusi tra virgolette doppie o parentesi quadre. Le parole riservate dipendono dal livello di compatibilità del database. Questo livello può essere impostato utilizzando l'istruzione ALTER DATABASE.
Vedere anche
Riferimento
CREATE DATABASE (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
DECLARE @local\_variable (Transact-SQL)