SQL Server에서 yes / no boolean 필드를 어떻게 작성합니까?


답변:


441

해당하는 BIT필드입니다.

에서 및 비트 필드를 설정 SQL하려면 (Access의 예 / 아니요 필드와 동일) Management Studio에서는 적어도 최근 버전에서는 false / true 값으로 표시됩니다.01

ASP.NET을 통해 데이터베이스에 액세스하면 필드가 부울 값으로 노출됩니다.


3
Access 데이터베이스에서 테이블을 연결하는 경우 true의 값은 -1이고 false의 값은 0입니다. 적어도 Access 2003에서는이 값이 고객의 MSSQL 데이터베이스에 연결된 편리한 버전입니다.
Henrik Erlandsson

2
정확히 동일하지는 않습니다. 스칼라 함수는 비트를 돌려주는 경우는 0 또는 예를 들어 1 인 경우, 당신은 여전히 테스트해야, dbo.IsReturnsBit (값) 1 =
대런 그리피스

@ D-Money : 예. 그러나 조건에서 값을 사용하려면 비교 만하면됩니다. 결과에 값을 사용하면 비교하지 않아야합니다.
Guffa

Re Mgt Studio, 데이터 복사 / 붙여 넣기를하려면 1 또는 0이 아닌 True / False로 설정해야합니다.
gorlaz

110

BIT데이터 유형은 일반적으로 저장하는데 사용된다 boolean(값 0false, 1true).


1
되는 BITSQL 표준에 지정된? 그것을 찾는 데 어려움을 겪고 있습니다. 내가 볼 수있는 가장 가까운 것은 "Boolean type"입니다.
획득

1
비트와 부울의 의미가 다르다는 것이 전혀 걱정 되십니까?
Darth Egregious


20

BIT필드 를 사용할 수 있습니다 .

기존 테이블에 BIT 열을 추가하는 경우 SQL 명령은 다음과 같습니다.

ALTER TABLE table_name ADD yes_no BIT

새 테이블을 만들려면 다음을 수행하십시오 CREATE TABLE table_name (yes_no BIT)..


19

데이터 타입을 사용할 수 있습니다 bit

0보다 큰 값을 삽입하면 '1'로 저장됩니다

0보다 작은 값을 삽입하면 '1'로 저장됩니다

'0'으로 삽입 된 값은 '0'으로 저장됩니다

이것은 MS SQL Server 2012 Express에 적용됩니다.


1
0보다 작은 값에 관한 설명이 확실합니까?
BiLaL

3
@BiLaL 이것은 대부분의 언어에서 일반적인 동작입니다. 0false, 0숫자가 아닌 모든 true입니다. 부호있는 이진 파일에는 모든 비트가 1로 설정되어 있기 때문에 -1이 true의 기본값이되는 것도 일반적이었습니다. 요즘 1을 true의 기본값 (최하위 비트 집합 만)으로 보는 것이 매우 일반적입니다.
CJ 데니스

16

이미 비트 사용에 대한 답변이 있습니다. 이 답변에 더 추가하겠습니다.

부울 값을 나타내는 데 비트 를 사용해야 합니다.

MSDN 기사의 비고

비트는 1, 0 또는 NULL 값을 가질 수 있습니다.

SQL Server 데이터베이스 엔진은 비트 열의 저장소를 최적화합니다. 테이블에 비트 열이 8 개 이하인 경우 열은 1 바이트로 저장됩니다. 9-16 비트 열이있는 경우 열은 2 바이트 등으로 저장됩니다.

문자열 값 TRUE 및 FALSE는 비트 값으로 변환 될 수 있습니다. TRUE는 1로 변환되고 FALSE는 0으로 변환됩니다.

비트로 변환하면 0이 아닌 값이 1로 승격됩니다.

참고

참고 : 데이터 유형에서만 값을 1과 0으로 유지하는 것이 좋습니다. NOT NULL

Bit는 1, 0 및 NULL 값을 갖습니다. 이에 대한 진리표를 참조하십시오. 따라서 그에 따라 가치를 계획하십시오. 비트 데이터 유형에 NULL 값을 허용하여 혼동을 추가 할 수 있습니다.

여기에 이미지 설명을 입력하십시오

참고


15

테이블을 작성하는 동안 샘플 사용법 :

[ColumnName]     BIT   NULL   DEFAULT 0

12

당신은 BIT필드를 사용할 수 있습니다

새 테이블을 만들려면

CREATE TABLE Tb_Table1
(
ID              INT,
BitColumn       BIT DEFAULT 1
)

기존 테이블에 열 추가 :

ALTER TABLE Tb_Table1 ADD BitColumn  BIT DEFAULT 1

레코드를 삽입하려면

INSERT Tb_Table1 VALUES(11,0)

9

bit가장 단순하고 최소 공간을 차지합니다. "Y / N"에 비해 매우 장황하지는 않지만 괜찮습니다.


4
Y == y 및 N = n, 순수한 참 또는 거짓에 대해 걱정할 필요가 없습니다. 의도는 전적으로 명백하며, 단일 문자 필드가 초대하는 "특별한"사례는 없습니다 :)
Rob Grant

5

bit가장 적합한 옵션입니다. 그렇지 않으면 나는 한 번 int그 목적으로 사용 했습니다. 1대한 true& 0에 대한 false.


2
일반적으로 False에는 0을 사용하고 True에는 0이 아닙니다.
Edu

2
맛이나 많이 있습니다 좋은 정치인 말할 수 사실 : D
부다 플로린

1

모든 버전의 SQL Server Management Studio에서 BIT데이터 형식으로 사용

True또는 False값 옵션을 제공합니다 . 경우에 당신 만 사용할 1또는 0당신은이 방법을 사용할 수 있습니다 :

CREATE TABLE SampleBit(
    bar int NOT NULL CONSTRAINT CK_foo_bar CHECK (bar IN (-1, 0, 1))
)

그러나 나는 최선의 선택 BIT으로 엄격하게 조언 할 것 입니다. 누군가에게 도움이되기를 바랍니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.