문제

관찰만큼 질문이 많지 않습니다 ...

라이브 응용 프로그램을 업그레이드 할 것으로 예상하여 개발 시스템에서 SQL Server 2008로 업그레이드하고 있습니다. 나는 일반적으로 표준 T-SQL을 사용하고 아마도 ANSI 표준 SQL에서 그리 멀지 않기 때문에 어떤 문제도 예상하지 못했습니다. 지금까지 너무 좋았지 만 나는 매우 간단한 변화에 정말로 던져졌습니다.

코드 목록을 저장하고 현재 기본 코드를 나타내는 비트 열을 포함하기 위해 간단하고 작은 룩업 테이블을 만들었습니다. 그러나 새/수정 된 'Top 200 Rows 편집'옵션을 사용하고 비트 열에서 0과 1을 입력했을 때 오류가 발생했습니다.

'셀의 잘못된 값 - 문자열은 유효한 부울로 인식되지 않았습니다'

약간의 헤드 스크래치 후, 나는 진실과 거짓을 시도했고 그들은 일했습니다.

따라서이 새로운 편집 기능은 이전 1보다 4 또는 5자를 입력해야합니다.

더 확인하면 여전히 사용할 수 있습니다. '...where bitval = 1'하지만 이제 사용할 수 있습니다'...where bitval = 'true''. 그러나 모든 결과를 반환하면 이러한 비트 열을 여전히 0 또는 1으로 렌더링합니다.

그것은 모두 반 걸음 뒤로 소리를냅니다. 세상의 종말이 아니라 불필요한 성가심.

이 문제에 대한 통찰력이 있습니까? 아니면 SQL Server 2008과 함께 다른 새로운 Gotchas가 있습니까?

2012 업데이트 :SQL Server 2012를 방금 설치 한 후이 동작이 '수정'되었음을 알 수 있습니다. 이전과 마찬가지로 'Top 200 Rows 편집'옵션을 사용하여 True/False가 행에 직접 1/0을 입력 할 수 있습니다. 작은 일이지만 행복합니다.

도움이 되었습니까?

해결책

그들이 그것을 날려 버렸고 절반만이 규칙을 시행했다는 것을 제외하고는 ... = 업데이트 명령문에서 true를 사용하고 어떤 일이 일어나는지 확인했습니다. 끝까지 가거나 전혀 가십시오. 미안, 마이크로 소프트, 그 점에 대한 점수를 줄 수 없습니다.

다른 팁

당신은 항상 'true'와 'false'를 사용하여 비트 열에 비교할 수있었습니다 ... 나는 "강제"로의 변화가 int가 아니라 필드가 조금이라는 것이 확실하다고 생각합니다. .

개인적으로, 나는 C#이 "if (0) ..."을 지원하지 않는 것을 좋아합니다. 명확성을 선호하는 것 같아요.

방금 이것을 찾았습니다 (다른 것을 준비한 후) 디자인으로 제작되었습니다

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top