Ho una tabella in SQL Server 2000 con colonna BitValue. Tuttavia, viene visualizzato come True/False in SQL Server Management Studio. Quando faccio un Select * from Tablename
restituisce i valori della colonna BitValue come Vero/Falso. Come posso forzarlo a restituire il valore come bit (1/0) anziché True/False? Qualsiasi aiuto sarà davvero apprezzato?Valore bit restituito come 1/0 e NON True/False in SQL Server
20
A
risposta
16
Modifica la query per generare l'output desiderato.
Provale colata a int:
select cast(bitFlag as int)
Oppure, se si vuole, utilizzare case
:
select (case when bitFlag = 0 then 0 else 1 end)
31
Prova con questo script, forse sarà utile:
SELECT CAST('TRUE' as bit) -- RETURN 1
SELECT CAST('FALSE' as bit) --RETURN 0
Ad ogni modo userei sempre un valore di 1 o 0 (non vero o falso). Seguendo il tuo esempio, lo script di aggiornamento sarebbe:
Update Table Set BitField=CAST('TRUE' as bit) Where ID=1
4
Questo può essere cambiato per 0/1 attraverso l'utilizzo di CASE WHEN
come in questo esempio:
SELECT
CASE WHEN SchemaName.TableName.BitFieldName = 'true' THEN 1 ELSE 0 END AS 'bit Value'
FROM SchemaName.TableName
Perché siete preoccupati per il formato di visualizzazione di un valore booleano in SSMS? –
Sto usando quei valori, facendo un po 'di lavoro e inserendo nuovamente i valori in quella tabella. Ma non posso inserire i valori come Vero/Falso perché genera un errore che dice qualcosa come il valore di bit accetta solo 1 o 0. – Butters
'Vero' è come SSMS visualizza una colonna di tipo' bit' con valore '1'. Un client C# riceverà un valore 'SqlBoolean.True'. – Andomar