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

ALTER TABLE (Transact-SQL)

CREATE DATABASE (Transact-SQL)

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)