Set o enum

giovedì 23 febbraio 2006 - 16.56

isotopo_1975 Profilo | Newbie

Ciao a tutti,

ho un problema con i tipi di dati in t-sql; sotto mysql posso usare il tipo dato set o enum per fare in modo di scegliere un valore appartenente solo ad un insieme prestabilito di dati.

Tale tipo di dato non esiste nel linguaggio t-sql! O molto probabilmente io lo ignoro ;)

In pratica vorrei che in un campo di una tabella si possa scegliere solo 'S' per Si o 'N' per no. In mysql è:

Set ('S','N') oppure
ENUM ('S','N')

Ma in t-sql?


Grazie mille

Isotopo disperato... :(

Brainkiller Profilo | Guru

>Ciao a tutti,
>ho un problema con i tipi di dati in t-sql; sotto mysql posso
>usare il tipo dato set o enum per fare in modo di scegliere un
>valore appartenente solo ad un insieme prestabilito di dati.
>Tale tipo di dato non esiste nel linguaggio t-sql! O molto probabilmente
>io lo ignoro ;)
>In pratica vorrei che in un campo di una tabella si possa scegliere
>solo 'S' per Si o 'N' per no. In mysql è:

Ciao,
non sono la persona adatta a dare questo tipo di risposte ma ci provo.
Devi usare dei check constraint a livello di colonna, per esempio se creo una tabella in questo modo:

CREATE TABLE test (id INT NOT NULL, name VARCHAR(10) NOT NULL, telefono varchar(1) NOT NULL CONSTRAINT telefono_check CHECK (telefono='S' OR telefono='N') )

consento di inserire nella colonna telefono sono valori S o valori N e non gli altri.
Infatti se provi a lanciare queste due query di inserimento:

Questa fallisce perchè passi la lettera G non consentita:
insert into test(id,name,telefono) values(1,'Mario','G')

Mentre queste vengono eseguite:
insert into test(id,name,telefono) values(1,'Pippo','S') insert into test(id,name,telefono) values(1,'Pluto','N')

Perchè passi dei valori contenuti nel dominio valori specificato.
CIao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/

isotopo_1975 Profilo | Newbie

Ho provato la soluzione che mi hai fatto vedere... FUNZIONA!!

Grazie mille

Iso

Brainkiller Profilo | Guru

>Ho provato la soluzione che mi hai fatto vedere... FUNZIONA!!

Accetta la risposta con l'apposito link così viene marcato come risolto.
Grazie
ciao

David De Giacomi
Microsoft MVP
http://blogs.dotnethell.it/david/
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 !
Copyright © dotNetHell.it 2002-2024
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5