Creare vincoli UNIQUE
Si applica a: SQL Server 2016 (13.x) e versioni successive Database SQL di Azure Istanza gestita di SQL di Azure
È possibile creare un vincolo di unicità in SQL Server utilizzando SQL Server Management Studio o Transact-SQL per assicurare non vengano immessi valori duplicati nelle colonne specifiche che non partecipano in una chiave primaria. La creazione automatica di un vincolo univoco crea un indice univoco corrispondente.
Nota
Per informazioni sui vincoli di unicità in Azure Synapse Analytics, vedere Chiave primaria, chiave esterna e chiave univoca in Azure Synapse Analytics.
Autorizzazioni
È necessario disporre dell'autorizzazione ALTER per la tabella.
Usare SQL Server Management Studio (SSMS)
Creare un vincolo di unicità usando SSMS
In Esplora oggettifare clic con il pulsante destro del mouse sulla tabella nella quale aggiungere un vincolo univoco e scegliere Progetta.
Selezionare Indici/chiavi nel menu Progettazione tabelle.
Nella finestra di dialogo Indici/chiavi selezionare Aggiungi.
Nella griglia in Generale selezionare Tipo e scegliere Chiave univoca dall'elenco a discesa a destra della proprietà, quindi selezionare Chiudi.
Nel menu File scegliere Salva nome tabella.
Usare Transact-SQL
Creare un vincolo di unicità usando Transact-SQL
In Esplora oggetti connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Nell'esempio viene creata la tabella
TransactionHistoryArchive4
e un vincolo univoco sulla colonnaTransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive4 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Creare un vincolo di unicità in una tabella esistente
In Esplora oggetti connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Nell'esempio viene creato un vincolo univoco nelle colonne
PasswordHash
ePasswordSalt
della tabellaPerson.Password
.USE AdventureWorks2022; GO ALTER TABLE Person.Password ADD CONSTRAINT AK_Password UNIQUE (PasswordHash, PasswordSalt); GO
Creare un vincolo di unicità in una nuova tabella
In Esplora oggetti connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Nell'esempio viene creata una tabella e definito un vincolo univoco nelle colonne
TransactionID
.USE AdventureWorks2022; GO CREATE TABLE Production.TransactionHistoryArchive2 ( TransactionID int NOT NULL, CONSTRAINT AK_TransactionID UNIQUE(TransactionID) ); GO
Creare un vincolo di unicità in una colonna che ammette i valori Null
In Esplora oggetti connettersi a un'istanza del motore di database.
Sulla barra Standard selezionare Nuova query.
Copiare e incollare l'esempio seguente nella finestra di query e selezionare Esegui. Nell'esempio viene creato un vincolo di unicità filtrato usando la sintassi
CREATE UNIQUE INDEX
applicando solo l'univocità sui valori nonNULL
.USE AdventureWorks2022; GO CREATE UNIQUE INDEX UQ_AdventureWorksDWBuildVersion ON dbo.AdventureWorksDWBuildVersion (DBVersion) WHERE (DBVersion IS NOT NULL); GO