In questo credo studieremo un altro vincolo presente in sql Server 2800 il vincolo di chiave univoca che anche detto vincolo Unique questo vincolo è usato fondamentalmente per rendere unici valori e all'interno di un campo e quindi per evitare qualsiasi ripetizione a dire il vero anche la chiave primaria, che è un vicolo che abbiamo visto in vita precedente, garantisce quest'unicità dei valori ma a differenza del vincolo di chiave univoca può essere una sola chiave primaria per ogni tabella viceversa un vincolo Unique può essere applicato su tutti i campi della tabella anche contemporaneamente per fare un esempio pratico andiamo a considerare la solita tabella di dipendenti che adesso andiamo a ricreare nei database DatabaseConVincoli di sorta natura di partenze leggermente modificata perché oltre ai classici campi di nome e cognome abbiamo anche un capo aggiuntivo leggi di che conterrà l'identificativo del badge che viene assegnato dall'azienda ad ogni dipendente. Proprio per la presenza di questo nuovo campo abbiamo denominato la tabella dipendenti badgeId nel nostro caso vogliamo che nell'ultimo campo campo badgeId sia univoco cioè che non ci possono essere due dipendenti che posseggono lo stesso badgeId di qui poche parole nel nostro campo belgi di non ci dovranno essere valori ripetuti ecco che proprio per questo ci viene aiuto il vincolo di chiave univoca andiamo quindi in progettazione della nostra tabella e nella toolbar in alto premiamo pulsante gestioni indici e chiavi oppure alternativamente possiamo venire sulla griglia della tabella cliccare col tasto destro del mouse e scegliere la voce indici chiavi ci si aprirà in entrambi i casi a finestre chiavi tra parentesi possono vedere qualche già presente in una chiave primaria che abbiamo definito tramite l'ho scritta di creazione della tabella che siano applicate a dipendenti beige dove PK come l'ho visto in precedenza indica tra i manichini c'è una chiave primaria prima località s'aggiungi per creare un nuovo vincolo di occhi nell'elenco degli indici delle chiavi ci compare una nuovo un nuovo indice che ha il suffisso X. questo suffisso è quello usato come standard per gli indici questo perché il motore di database per creare un vincolo riunito che genera automaticamente un indice univoco proprio per far rispettare l'unicità di questo vincolo adesso per definire che il nostro vincolo appena creato e di tipo chiave univoca dobbiamo posizionare sulla riga tipo e modificare appunto il tipo di vincolo certo sarà un indice ma sarà chiave univoca adesso dobbiamo definire il campo vincolato o sia quel campo di cui vogliamo rendere univoci valori 15 spostiamo sulla riga precedente e selezioniamo il pulsante scegliendo il nome della colonna che vogliamo vincolare nel nostro caso sarà belgi e di diamo che lei chiudiamo la finestra e salviamo database come al solito per verificare che tutte le modifiche che abbiamo apportato al database non state salvate correttamente andiamo a sfogliare ville alla crisi uno e verifichiamo che effettivamente stato creato l'indice dipendenti beige adesso facciamo qualche prova sui dati apriamo la tabella e proviamo ad inserire due dipendenti con valori tutti diversi ecco fatto abbiamo quindi due dipendenti con nome cognome diverso e belgi di chiaramente diversa quindi il motore del database senza permesso effettivamente di salvare questi due record non è perché non esistono duplicazioni nel campo belgi di parliamo adesso a creare un terzo dipendente duplicando questa volta il decidi di uno dei due dipendenti già creati pubblichiamo ad esempio il secondo brigidino copiamo proprio e proviamo a vedere che cosa succede tentando di salvare questo record scompare quindi la finestra di errore che ci dice che è stato violato il vincolo di chiave univoca i X. dipendenti beige importante ricordare che otterremo lo stesso risultato anche se nella tabella non avessimo alcun vincolo ma se cercassimo di aggiungerlo avendo in tabella dei record duplicati nel campo che stiamo andando vincolare proviamo quindi a rimuovere manualmente nel nostro vincolo c'accertiamo che anche l'ultimo record è stato salvato ed è proprio così visto che abbiamo rimosso il vincolo di unite per cui tentiamo di ricreare adesso il vincolo salviamo una tabella ed ecco qua che si compare lo stesso messaggio di errore e si dice che abbiamo duplicato i valori il valore a 10 10 nel campo belgi di che proprio il campo che vogliamo vincolare le quindi vogliamo rendere unico adesso che ultima cosa proviamo ad accertarci nuovamente che il vincolo sia stato rimosso correttamente ok il vincolo non esiste e proviamo a crearlo tramite scritte dovremo usare quindi una sintassi di questo tipo altero te il buon nome della tabella a costa niente nome del vincolo di unite che il tipo lì di vincolo e il nome del campo per cui nel nostro caso sarà al percento di dipendenti beige il nome del vincolo e i X. dipendenti andrà scorta Belgio e tra parentesi il nome del campo che recuperiamo da qui sotto c'è beige di di lanciamo questa quella che effettivamente non stiamo che non c'è possibile e creare il il vincolo proprio perché abbiamo il valore duplicato in tabella l'andiamo a modificare rendendolo anche questo univoco e rilanciamo scritte ecco qua è stato creato il vincolo adesso lo rimuoviamo sempre tramite scritte usando però quest'altra sintassi c'è altra per il buon nome tabella dal consulente del nome del nostro vincolo per cui alter debbono dipendenti beige e dal consulente nome del vincolo c'è X. dipendenti beige lanciavo lanciamo ragioniamo di nuovo il nodo chiave crediamo che effettivamente il vincolo è stato rimosso