이 제목을 어떻게 발음할지 생각조차 할 수 없었습니다. 이것은 SQL Server 2005입니다.SSMS 2005 - 다른 결과를 반환하는 앤티 앨리어스가 적용된 열
열에 대한 별칭을 사용하여 동일한 쿼리를 수행 할 경우, 완전히 다른 결과를 얻습니다. 모호하지 않습니다.
예 쿼리 :
UPDATE MyTable
SET Col1 = Col1 - 1
FROM DB.dbo.MyTable M
WHERE EXISTS (SELECT *
FROM DB.dbo.SecondTable B WITH (NOLOCK)
WHERE B.Col2 = 12345678
AND B.Col3 = 1
AND B.M-FK = M.M-PK)
AND M.Col1 > 0
AND M.Col4 = 87654321;
이 쿼리는 내가 직접 테이블에 모든 가정, 나는 상당한 수익을 얻을.
매우 유사한 쿼리,하지만 난 테이블을 지정하지
UPDATE MyTable
SET Col1 = Col1 - 1
FROM DB.dbo.MyTable M
WHERE EXISTS (SELECT *
FROM DB.dbo.SecondTable B WITH (NOLOCK)
WHERE Col2 = 12345678
AND Col3 = 1
AND B.M-FK = M.M-PK)
AND Col1 > 0
AND Col4 = 87654321;
제 2 질의는 반환 1.
이 사이의 만 상호 열은 B-외래 키 => M.PrimaryKey
입니다내 경험에 비추어 볼 때 항상 별칭에 열을 할당했지만 누군가가 위의 질문을 일찌감치 질문했을 때 혼란 스러웠습니다. 그들이 애매한 경우 SSMS는이를 거부합니다. 그러나 실제로 실행되었습니다.
그래서 나는 '어쩌면 그 열을 무시합니다'라고 생각했습니다. 그것은 이상합니다. 하지만 두 번째 행은 더 많은 혼란을 가져 오는 행을 반환합니다.
아무에게도 별칭과 비 별칭 쿼리가 변경되는 이유를 정확하게 설명 할 수 있습니까? 오류가 발생하는 이유는 무엇입니까?
좋은 설명. 저는 항상 별칭에도 붙어 있습니다. 내 직원과 그의 스크립트를 비교했을 때이 질문을했던 직원이었습니다. 그에게 실제적인 대답이없고, 우리 둘다 'SQL이라고 가정합니다.'라는 식의 열은 특정 테이블이 나열되지 않아서 그의 위치를 무시하고 있었지만 여전히 정확한 답변을 찾으려고했습니다. 그것은 단지 그러한 필드를 무시 SSMS 것 같습니다. 아직 그의 쿼리가 한 가지 결과를 얻었지만 실마리가 없다는 단서가 없습니다. 귀하의 회신에 기꺼이 동의합니다. – DNorthrup
의견을 주셔서 감사합니다. 내 대답에 투표 할 수 있으면 @DNorthrup도 환영 할 것입니다. – Fandango68