2014-05-23 2 views
0

MS SQL 2008에서 SQL2012로 데이터베이스를 마이그레이션했습니다. 마이그레이션 후 일부 쿼리가 작동하지 않습니다. 쿼리 아래 는 SQL2008과 SQL2000과 협력하지만 SQL2012SQL Server 2012에서 DISTINCT 및 ORDER BY 쿼리가 작동하지 않습니다.

SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field1 FROM TABLE ORDER BY Field1 

메시지 209, 수준 16, 상태 1, 줄 1 모호한 열 이름 'MCH_GROUP'와 함께 작동하지 않습니다.

나는 우리가 쿼리를 수정할 수 있지만 우리는 많은 응용 프로그램을 가지고 있습니다. 나는 경로 또는 당신은 같은 2 개 필드를 호출 한 다음 ...에 의해 순서를 혼동 2012

+0

사용중인 실제 쿼리를 표시 할 수 있습니까? "모호한 열 이름"오류는 같은 열 이름을 가진 테이블을 조인 할 때 발생하며 별칭을 지정하지 않습니다. 당신의 샘플 질의는 그런 조인 (또는 그 문제에 대해'MCH_GROUP'이라는 열)을 가지고 있지 않습니다. – newfurniturey

+0

2 개의 field1이 반환되며 동일한 이름으로 주문하려고합니다. 이름 중 하나를 변경하십시오. –

+0

'DISTINCT 선택 Field1, Field1 + Field1로 Field1 + Field1로 Field1로 표 ORDER BY Field1로 ' –

답변

0
SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as Field2 FROM TABLE ORDER BY Field1 

SQL에 오류없이이 쿼리를 실행하는 설정이 있어야한다고 생각

2

이 오류는 order by 절로 인해 발생합니다. 서버는 두 개의 Field1 열을 구분할 수 없습니다. 두 번째 열에 다른 이름을 지정하십시오. 당신이 절대적으로 쿼리를 변경할 수없는 경우

SELECT  DISTINCT Field1, 
      Field1+ ' - ' + Field1 as Field2 
FROM  TABLE 
ORDER BY Field1 

Another Eg: 
SELECT  DISTINCT [FirstName], 
      [FirstName] + ' - ' + [FirstName] As [TwiceFirstName] 
FROM  [dbo].[DimCustomer] 
ORDER BY [FirstName] 
+0

이 내용이 정확하고 문제를 해결하기 위해 원래 포스터가 수행해야하는 작업이지만 실제로는 질문에 대답하지 않습니다. – DavidG

+0

데이비드 감사합니다. –

0

이 시도

SELECT DISTINCT Field1, Field1+ ' - ' + Field1 as CalcualtedField FROM TABLE ORDER BY Field1 
0

은 (당신이해야하는) 다음 SQL2000에 데이터베이스의 호환성 수준을 설정합니다. 데이터베이스, 속성, 옵션을 마우스 오른쪽 단추로 클릭 Compatibility levelSQL Server 2000 (80)

+0

SQL Server 2012에서 데이터베이스를 실행할 가장 낮은 호환성 수준은'2005 (90)'입니다. –

+0

@Damien_The_Unbeliever OK, 테스트 할 2012 인스턴스가 없었으며 2005 년에 정상적으로 작동했습니다. 아, OP는 모든 쿼리를 변경해야합니다. 장기적인 이득을위한 단기 통증. – DavidG

+0

오케이, 의견이나 제안을 보내 주셔서 감사합니다. 호환성 수준을 변경하는 것은 적합하지 않습니다. – Emre

관련 문제