Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Vincolo Unique su 2 campi
martedì 20 gennaio 2004 - 20.21
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
mar 20 gen 2004 - 20:21
Ciao a tutti, ho un semplice (credo) problema che non riesco a risolvere.
Vorrei realizzare un vincolo Unique su 2 campi di una tabella insieme.
i due campi possono essere per semplicità Nome e Cognome.
Io vorrei che l'accoppiata Nome + Cognome fosse univoca nella mia tabella
come posso fare ? da dove eseguo l'operazione da ent manager o query analyzer ?
Uso MS Sql Server 2000
Brainkiller
Profilo
| Guru
7.999
messaggi | Data Invio:
mer 21 gen 2004 - 01:29
Allora, credo di aver capito, per comodità entra in Enterprise Manager e cerca la tua tabella, vai in modalità Design quella dove puoi aggiungere i campi.
Tieni premuto il tasto Control (Ctrl) e seleziona il primo campo, poi sempre tenendo premuto il Control clicca anche sul secondo campo, dovrebbero diventare scuri entrambi, poi premi sulla chiavetta in alto, così diventeranno la chiave primaria l'accoppiata nome e cognome.
ciao
david
Trinità
Profilo
| Junior Member
62
messaggi | Data Invio:
mer 21 gen 2004 - 08:20
Grande ! sembra funzionare come dicevo io (solo l'accoppiata) !
Già buono così !
Solo che a mè servirebbe che la chiave primaria rimanesse il mio ID numerico autoincrementale che è presente nella stessa tabella.
Vorrei solo realizzare un vincolo su quei due campi ...
grazie ancora !
lbenaglia
Profilo
| Guru
5.625
messaggi | Data Invio:
dom 21 mar 2004 - 00:33
Ciao Alessandro,
> Solo che a mè servirebbe che la chiave primaria rimanesse il mio ID numerico autoincrementale che è
> presente nella stessa tabella.
Nessun problema, assegni alla colonna identity un constraint di tipo PRIMARY KEY ed alla coppia Nome + Cognome un secondo constraint di tipo UNIQUE.
Vediamo un esempio.
USE tempdb
GO
/* Creo una tabella dbo.Studenti */
CREATE TABLE dbo.Studenti(
StudenteID int NOT NULL IDENTITY,
Nome varchar(10) NOT NULL,
Cognome varchar(10) NOT NULL,
CONSTRAINT PK_Studenti PRIMARY KEY(StudenteID),
CONSTRAINT UN_NomeCompleto UNIQUE(Nome, Cognome)
)
GO
/* La popolo */
SET NOCOUNT ON
INSERT dbo.Studenti VALUES('Lorenzo', 'Benaglia') -- OK
INSERT dbo.Studenti VALUES('Luca', 'Bianchi') -- OK
INSERT dbo.Studenti VALUES('David', 'De Giacomi') -- OK
INSERT dbo.Studenti VALUES('Lorenzo', 'De Giacomi') -- OK
SET NOCOUNT OFF
GO
INSERT dbo.Studenti VALUES('Lorenzo', 'Benaglia') -- KO
GO
/* Output
Server: Msg 2627, Level 14, State 2, Line 1
Violation of UNIQUE KEY constraint 'UN_NomeCompleto'. Cannot insert duplicate key in object 'Studenti'.
The statement has been terminated.
*/
/* Vediamo */
SELECT *
FROM dbo.Studenti
ORDER BY StudenteID
GO
/* Output:
StudenteID Nome Cognome
----------- ---------- ----------
1 Lorenzo Benaglia
2 Luca Bianchi
3 David De Giacomi
4 Lorenzo De Giacomi
(4 row(s) affected)
*/
/* Pulizia */
DROP TABLE dbo.Studenti
Per maggiori informazioni sui CONSTRAINT UNIQUE leggi il seguente paragrafo sui Books Online:
"UNIQUE Constraints" URL:createdb.chm::/cm_8_des_04_4bas.htm
(incolla l'URL nella dialog box che appare selezionando i menu Go, URL...).
Ciao!
--
Lorenzo Benaglia
Microsoft MVP - SQL Server
http://mvp.support.microsoft.com
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !