salve
mickysantomax ha scritto:
Salve, ho la necessità di realizzare un campo di tipo bool in una tabella di SQL Server 2000. Documentandomi in rete ho scoperto che il tipo più adatto per fare queste cose e' BIT (sottotipo di INT) che prevede due valori, 0 e 1. Il problema e' che ho provato ad impostare al campo il tipo BIT ma accetta solo valori 0 e -1, e' normale ?
non e' possibile.. qualsiasi valore diverso da 0 viene automaticamente convertgito in 1, in quanto, appunto come gia' hai indicato, il tipo di dato bit e' nel dominio degli interi con restrizione a valori 0/1
prova ad eseguire
SET NOCOUNT ON;
CREATE TABLE dbo.t (
Id int PRIMARY KEY,
b1 bit,
b2 bit,
b3 bit,
b4 bit
);
INSERT INTO dbo.t VALUES ( 1, 1, -1, 1000, -1000);
SELECT * FROM dbo.t;
GO
DROP TABLE dbo.t;
e vedrai che otterrai sempre e solo "1"..
il "-1" veniva utilizzato per definire il valore di True anche in ambiente Visual Basic, mentre solitamente i linguaggi di programmazione definiscono il vero == 1
piu' indietro nel tempo, sempre in vb, era uso dichiarare due costanti quali
const True = -1
const False = Not True
Se si, quale dei due equivale a true e quale a false ?
Grazie anticipatamente
per definizione, 0=False, Not False=True (ergo Not 0, ergo 1/-1/..)
saluti