freezner

[MS-SQL] MS-SQL 2000 이하에서 지원되던 오래된 쿼리 2008 이상에서도 사용하기

물론 좋은 방법은 아니지만 어느 한 고객사 웹사이트가 저희 쪽으로 서버를 이관하면서 DB 오류를 뿜는 현상이 있었습니다. 소스를 자세히 살펴보니 상위 호환되지 않는 쿼리가 있었습니다.

물론 쿼리를 모두 마이그레이션 해준다면 해주는 것이 최선이겠지만 작업 범위에 들어가 있지 않은 예외 상황이라 돌아가게만 처리하고 이후 마이그레이션이 필요하다면 추가 작업을 하기로 했습니다. 그렇다면 신버전 SQL-SERVER에서 해석이 가능하도록 도와줘야하는데 방법은 생각보다 간단합니다.

MS-SQL에는 기본적으로 스토어드 프로시저가 존재합니다. 그 중에 sp_dbcmptlevel 라는 놈이 있는데 이 녀석이 바로 하위 쿼리 호환성을 해결해주는 역할을 합니다.

사용 방법
1. 쿼리편집기 실행
2. EXEC  sp_dbcmptlevel, [호환레벨]
3. 입력한 쿼리문 실행

호환레벨은 아래와 같습니다.
SQL Server 2000 = 80
SQL Server 2005 = 90
SQL Server 2008 = 100
SQL Server 2012 = 110

이 글에서의 예를 들자면 2000의 비호환 쿼리를 사용해야하기 때문에 EXEC sp_dbcmptlevel, 80 을 입력하고 실행하면 해결이 됩니다.

Exit mobile version