Identificatori del database
Il nome di un oggetto di database rappresenta l'identificatore dell'oggetto stesso. Tutti gli elementi di Microsoft SQL Server possono avere un identificatore. 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
I nomi delle variabili o i parametri delle funzioni e delle stored procedure devono essere conformi alle regole per gli 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 sono delimitati quando vengono usati nelle 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.
Gli identificatori che non sono conformi a tutte le regole per gli identificatori devono essere delimitati in un'istruzione Transact-SQL. 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 includere da 1 a 128 caratteri. Gli identificatori delle tabelle temporanee locali possono includere al massimo 116 caratteri.
Regole relative agli identificatori regolari
I nomi di variabili, funzioni e stored procedure devono essere conformi alle regole seguenti per gli identificatori Transact-SQL.
Il primo carattere deve essere uno dei seguenti:
Una lettera definita dallo standard Unicode 3,2, ovvero i caratteri dell'alfabeto latino a-z e A-Z e i caratteri di altre lingue.
Il carattere di sottolineatura (_), il simbolo di chiocciola (@) o il simbolo di cancelletto (#).
Alcuni simboli all'inizio di un identificatore hanno un significato speciale in SQL 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. il carattere # indica una tabella o una procedura temporanea, mentre due simboli di cancelletto (##) indicano un oggetto temporaneo globale. Nonostante sia possibile usare uno o due simboli di cancelletto all'inizio dei nomi di altri tipi di oggetti, è consigliabile non adottare questa tecnica.
Alcune funzioni Transact-SQL hanno nomi che iniziano con segni double at (@@). Per evitare confusione in merito a tali funzioni, è consigliabile non usare nomi che iniziano con @@.
I caratteri successivi possono includere gli elementi seguenti:
Lettere definite nello standard Unicode 3,2.
Numeri decimali inclusi nell'alfabeto Latino di base o in altri alfabeti nazionali.
Il simbolo di chiocciola, il simbolo di dollaro ($), il simbolo di cancelletto o il carattere di sottolineatura.
L'identificatore non deve essere una parola riservata Transact-SQL. SQL Server riserva sia le versioni maiuscole che minuscole delle parole riservate. Quando gli identificatori vengono usati nelle istruzioni Transact-SQL, gli identificatori che non sono conformi a queste regole devono essere delimitati da virgolette doppie o parentesi quadre. Le parole riservate dipendono dal livello di compatibilità del database. Questo livello può essere impostato usando l'istruzione ALTER DATABASE .
Non sono consentiti spazi incorporati o caratteri speciali.
Non sono consentiti caratteri supplementari.
Quando gli identificatori vengono usati nelle istruzioni Transact-SQL, gli identificatori che non sono conformi a queste regole devono essere delimitati da virgolette doppie o parentesi quadre.
Nota
Alcune regole relative al formato degli identificatori regolari dipendono dal livello di compatibilità del database. È possibile impostare tale livello con ALTER DATABASE.
Vedere anche
ALTER TABLE (Transact-SQL)
CREATE DATABASE (Transact-SQL di SQL Server)
CREATE DEFAULT (Transact-SQL)
CREATE PROCEDURE (Transact-SQL)
CREATE RULE (Transact-SQL)
CREATE TABLE (Transact-SQL)
CREATE TRIGGER (Transact-SQL)
CREATE VIEW (Transact-SQL)
DECLARE @local_variable (Transact-SQL)
DELETE (Transact-SQL)
INSERT (Transact-SQL)
Parole chiave riservate (Transact-SQL)
SELECT (Transact-SQL)
UPDATE (Transact-SQL)