2013-07-03 7 views
20

Mam tabelę w SQL Server 2000 z kolumną BitValue. Ale jest wyświetlany jako True/False w SQL Server Management Studio. Kiedy robię Select * from Tablename, zwraca wartości kolumn BitValue jako True/False. W jaki sposób wymuszam zwracanie wartości jako bitów (1/0) zamiast wartości Prawda/fałsz? Każda pomoc będzie naprawdę doceniana?Wartość bitu powrotnego jako 1/0 i NIE prawda/fałsz w SQL Server

+0

dlaczego jesteś zaniepokojony formatu wyświetlania wartości logicznej w SSMS? –

+0

Używam tych wartości, wykonuję pracę i wstawiam wartości do tej tabeli. Ale nie mogę wstawić wartości jako Prawda/Fałsz, ponieważ powoduje to błąd mówiąc, że coś jak wartość bitowa akceptuje tylko 1 lub 0. – Butters

+1

'True' to po prostu jak SSMS wyświetla kolumnę typu' bit' z wartością '1'. Klient C# otrzyma wartość 'SqlBoolean.True'. – Andomar

Odpowiedz

16

Zmodyfikuj zapytanie, aby wygenerować żądane wyniki.

Spróbuj przesłać je do int:

select cast(bitFlag as int) 

Albo, jeśli chcesz używać case:

select (case when bitFlag = 0 then 0 else 1 end) 
31

Spróbuj z tego skryptu, może będzie przydatny:

SELECT CAST('TRUE' as bit) -- RETURN 1 
SELECT CAST('FALSE' as bit) --RETURN 0 

W każdym razie zawsze używałbym wartości 1 lub 0 (nie TRUE lub FALSE). W następstwie swojej przykład skrypt aktualizacja będzie:

Update Table Set BitField=CAST('TRUE' as bit) Where ID=1 
4

to można zmienić na 0/1 poprzez zastosowanie CASE WHEN jak w poniższym przykładzie:

SELECT 
CASE WHEN SchemaName.TableName.BitFieldName = 'true' THEN 1 ELSE 0 END AS 'bit Value' 
FROM SchemaName.TableName