SQL Server에서 고유 인덱스는 NULL에 대한 비교가 NULL을 반환하는 나머지 SQL에서와 같이 NULL을 '다른 값'으로 처리하는 것으로 보입니다. 고유 인덱스 만들기 하나/유일한/단일 NULL
당신이 널 (NULL) 컬럼K
에 고유 인덱스가있는 테이블 (
t
)를 가지고 말 : 좋은
K V
0 32
1 12
3 45
모두.
그러나 그것은 또한
K V
0 32
1 12
3 45
NULL 89 <-- Baaad
그리고 그 반대로, 그것은 또한 다음과 같은 수 있도록 :
K V
NULL 89
0 32 <-- not good
나는 이것이 내가 널 (null)을 사용하고 같은 잠재적 인 재앙이 될 수 있습니다 볼 수 있습니다 더 이상 고장이없는 값을 나타내는 키 값 - 합계 및 내역이 중복 계산 또는 불일치로 연결됩니다.
사람들이 어디에서 반대쪽 (다중 NULL 허용)을하고 싶은지 궁금한 점은 수천 가지이지만 NULLs는 NULL을 NULL로 처리하고 싶지 않습니다. 널 (NULL)이 (만 허용 한 NULL 또는 열의 고유 값의 수)로
어떻게 SQL Server가 널 (null)을 치료하기 위해 얻을 수있는 고유 인덱스에?
당신이 실제로 어떤 행동을하는지 명확하지 않습니다. "NULLs를 NULLs로 취급하십시오"라는 문구는 마치 문구에서 명백하게 보여야하는 것처럼 사용하지만, 나에게는 그렇지 않습니다. 또한 두 번째 예제가 불분명하다는 것을 알았습니다. –
SQL-Server는 고유 제한 조건이있는 열에서 최대 하나의 'NULL'을 허용합니다. 다른 DBMS (이 경우 표준과 함께 사용)는 둘 이상의 Null을 허용합니다. 고유 한 부분 색인을 만들어이를 우회 할 수는 있지만 이것이 당신의 목표라고 생각하지 않습니다.목표가 실제로 무엇인지는 분명하지 않습니다. –
글쎄, 내 생각에'NULL'과의 비교는'NULL'을 가져야합니다. 따라서 한 컬럼이 하나의'NULL'을 포함하고 있다면 다른 값 (NULL을 포함해서)에 대한 모든 비교는 실패해야합니다. 나는 그것이 '낙천적'인 것이 유용 할 수 있으며, 'NULL'은 고유하지 않은 미지를 나타낼 것이라고 가정 할 수 있지만, 내 경우 엔 비관적이며 데이터베이스의 무결성을 보장합니다. – Fowl