호환성 뷰(Transact-SQL)

SQL Server의 이전 릴리스에 사용되었던 여러 시스템 테이블이 SQL Server 2005에서는 뷰 집합으로 구현됩니다. 이러한 뷰를 호환성 뷰라고 하며 이전 버전과의 호환성을 위해서만 제공됩니다. 호환성 뷰는 SQL Server 2000에서 사용되었던 것과 동일한 메타데이터를 노출합니다. 그러나 SQL Server 2005에서 새로 추가된 기능과 관련된 메타데이터는 노출하지 않습니다. 따라서 Service Broker 또는 분할과 같은 새로운 기능을 사용할 때는 카탈로그 뷰로 전환하여 사용해야 합니다.

카탈로그 뷰로 업그레이드해야 하는 또 다른 이유는 사용자 ID 및 유형 ID를 저장하는 호환성 뷰 열이 NULL을 반환하거나 산술 오버플로를 트리거할 수 있기 때문입니다. 이것은 SQL Server 2005에서 사용자, 그룹 및 역할과 데이터 형식을 32,767개 이상 만들 수 있기 때문입니다. 예를 들어 32,768명의 사용자를 만들고 다음과 같은 쿼리를 실행한다고 가정합니다. SELECT * FROM sys.sysusers. ARITHABORT를 ON으로 설정하면 산술 오버플로 오류가 발생하여 쿼리가 실패하게 되고 ARITHABORT를 OFF로 설정하는 경우 uid 열에서 NULL이 반환됩니다.

이러한 문제를 피하려면 증가된 사용자 ID 및 유형 ID 수를 처리할 수 있는 새로운 카탈로그 뷰를 사용하는 것이 좋습니다. 다음 표에서는 이 오버플로를 트리거할 수 있는 열을 나열합니다.

열 이름 호환성 뷰 SQL Server 2005 뷰

xusertype

syscolumns

sys.columns

usertype

syscolumns

sys.columns

memberuid

sysmembers

sys.database_role_members

groupuid

sysmembers

sys.database_role_members

uid

sysobjects

sys.objects

uid

sysprotects

  • sys.database_permissions
  • sys.server_permissions

grantor

sysprotects

  • sys.database_permissions
  • sys.server_permissions

xusertype

systypes

sys.types

uid

systypes

sys.types

uid

sysusers

sys.database_principals

altuid

sysusers

sys.database_principals

gid

sysusers

sys.database_principals

uid

syscacheobjects

sys.dm_exec_plan_attributes

uid

sysprocesses

sys.dm_exec_requests

참고 항목

참조

카탈로그 뷰(Transact-SQL)
SQL Server 2000 시스템 테이블을 SQL Server 2005 시스템 뷰로 매핑

관련 자료

SQL Server 시스템 카탈로그 쿼리

도움말 및 정보

SQL Server 2005 지원 받기