회사/사내개발

mssql 버전 호환성 문제 (PIVOT과 같은 함수에서 오류가 나요)

lowellSunny 2020. 8. 27. 14:00

다른 직원에게 문제 쿼리문을 받아 실행시키는데 MSSQL 함수에서 오류가 나면서 실행에 실패하는 에러가 떴다.

다른사람의 DB관리도구 (SSMS)에서는 문제가 없는데 내 PC에서만 문제가 발생한다.

나의 SSMS 버전에 문제가 있는걸까?

 

오류 메시지 내용은 아래와 같다.

---------------------------------------------------------------------------------

'PIVOT' 근처의 구문이 잘못되었습니다. 이 기능을 사용하려면 현재 데이터베이스의 호환성 수준 값을 더 높게 설정해야 합니다. ALTER DATABASE의 SET COMPATIBILITY_LEVEL 옵션에 대해서는 도움말을 참조하십시오.

---------------------------------------------------------------------------------

오류 메시지 내용

 

 

select compatibility_level from sys.databases where name = '데이터베이스명'; --실행결과는 100

============================================================================

compatibility_level
-------------------
100

============================================================================

호환성 수준을 높이면 해결된다고 하길래 

 

https://docs.microsoft.com/ko-kr/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15

여기 설명에 나와있는대로

 

ALTER DATABASE NEW_INTRANET  
SET COMPATIBILITY_LEVEL = 120;  
GO;

 

실행시키고 나서도 100이 최대라고 뜬다...

더 찾아보니 또 다른 방법이 있다.

 

EXEC sp_dbcmptlevel '데이터베이스명',100; -- 특정 데이터베이스 동작이 지정된 SQL Server 버전과 호환되도록 설정.

 

요걸 실행하니 된다 ! 실행 후에 새 쿼리를 열고 기존에 실행시켰던 쿼리문을 다시 실행시키니 오류 없이 잘된다.