-
SQL Server 데이터베이스 호환성 수준Development/SQL Server 2020. 5. 30. 21:26
데이터베이스 호환성 수준 이란?
간략하게 설명하면, 데이터베이스 엔진 버젼 간의 호환되는 수준을 의미합니다. 세부적으로 들어가면 호환성 수준에 따라, 지원하지 않는 인덱스 힌트 등이 생긴다거나 새로 지원하는 기능이 생겨날 수도 있게 됩니다.
아래는 SQL Server 제품 간의 호환성 수준 및, 지원되는 호환성 수준에 대한 표 입니다.Product 데이터베이스 엔진 버전기본 호환성 수준 지정지원되는 호환성 수준
SQL Server 2019 (15.x) 15 150 150, 140, 130, 120, 110, 100 SQL Server 2017(14.x) 14 140 140, 130, 120, 110, 100 Azure SQL Database 단일 데이터베이스/탄력적 풀 12 150 150, 140, 130, 120, 110, 100 Azure SQL Database 관리되는 인스턴스 12 150 150, 140, 130, 120, 110, 100 SQL Server 2016(13.x) 13 130 130, 120, 110, 100 SQL Server 2014(12.x) 12 120 120, 110, 100 SQL Server 2012(11.x) 11 110 110, 100, 90 SQL Server 2008 R2 10.5 100 100, 90, 80 SQL Server 2008 10 100 100, 90, 80 SQL Server 2005(9.x) 9 90 90, 80 SQL Server 2000(8.x) 8 80 80 중요
[출처] docs.microsoft.com
하위 버젼 데이터베이스를, 상위 버젼으로 Restore 할 경우에 지원되는 호환성 최소 수준보다 낮지 않은 이상 기존 호환성 수준을 유지하게 됩니다.
Ex) 호환성 수준이 80인 데이터베이스를, SQL Server 2017에 Restore 시 최소 지원 수준인 100으로 설정되게 됩니다.
호환성 수준이 110인 데이터베이스를, SQL Server 2017에 Restore 시 110을 그대로 유지하게 됩니다.데이터베이스의 호환성 수준을 보는 방법은 아래 쿼리를 실행하면 됩니다.
12345USE My_database_nameGOSELECT compatibility_levelFROM sys.databases WHERE name = 'My_database_name'GOcs 호환성 수준을 변경하는 쿼리입니다.
1234ALTER DATABASE My_database_nameSET COMPATIBILITY_LEVEL = 120;GOcs 설정 가능한 호환성 수준은, SQL Server 버젼마다 차이가 있을 수 있습니다.
(90 ~ 150까지 설정 가능)12ALTER DATABASE database_nameSET COMPATIBILITY_LEVEL = { 150 | 140 | 130 | 120 | 110 | 100 | 90 }cs 호환성 수준을 변경하게 될 경우, 이전에는 동작하던 쿼리가 실행되지 않거나 트랜잭션이 다르게 묶이게 될 수 있습니다.
엔지니어는, 이 점을 인지하여 지원되지 않을 예정인 IMAGE, TEXT, NTEXT 데이터타입 사용을 지양하거나 쿼리 작성 시
JOIN 문을 상세하게 명시하는 등, 호환성 수준 변경에 의한 이슈가 줄어들 수 있도록 퀄 ㅣ작성을 수행해야 합니다.
https://docs.microsoft.com/ko-kr/sql/t-sql/statements/alter-database-transact-sql-compatibility-level?view=sql-server-ver15'Development > SQL Server' 카테고리의 다른 글
Recursive CTE (Common Table Expression) (0) 2020.02.08 댓글