SQL Server

SQL Server 2000 호환성수준 80과 90에서 수동 점검 해야하는 쿼리

AWS-in 2016. 5. 12. 13:41

SQL Server 2000에서 상위 버전으로 호환성수준을 변경을 하면 오류가 발생하는 쿼리들이 있다. 그래서 상위버전으로 업그레이드 할 경우에 업그레이드 관리자를 수행하여 호환성테스트를 하게 된다.

   

업그레이드 관리자(Upgrade Advisor)를 수행하여 호환성이슈가 발생하는 케이스는 아래의 경우에만 추출하게 된다.

https://msdn.microsoft.com/ko-kr/library/ee240650(v=sql.120).aspx

   

외에는 아래 쿼리처럼 업그레이드관리자를 수행하여 보고서를 확인하면 아래 쿼리는 검출할 수 없다.

   

[데모]

#.호환성 수준 80

create table tblx(col1 int, col2 int)

   

insert into tblx values(4,44)

   

select * from tblx

   

use td

go

   

create proc t_1

as

declare @sql varchar(100)

set @sql = ''

   

set @sql = 'select col1, col1, col2 from tblx

order by col1 desc'

execute(@sql)

   

execute t_1

   

   

#.호환성 수준 90

아래와 같이 오류가 발생한다. SQL 2000에서는 무관하게 처리되었지만, 애매한 컬럼정의는 2005부터는 오류가 발생한다.

   

   

[데모 2]

대표적인 호환성 이슈쿼리이다. 업그레이드관리자 실행하면 검출이 된다.

   

   

업그레이드 관리자의 보고서는 아래와 같이 나온다.

   검색어 : 호환성예외쿼리