Widoki zgodności (Transact-SQL)

Wiele tabele systemowe z wcześniejszych wersji programu SQL Server są obecnie implementowane jako zestaw widoków.Widoki te są znane jako widoki zgodności i są przeznaczone wyłącznie do zgodności ze starszymi wersjami.Widoki zgodności narazić tych samych metadane był dostępny w SQL Server 2000.Jednakże zgodność widoków nie będą uwidaczniać którekolwiek z metadane związanych z funkcji, które są wprowadzane w SQL Server 2005 i nowsze.W związku z tym, kiedy użyjesz nowe funkcje, takie jak Service Broker lub partycjonowanie, należy przełączyć za pomocą widoki wykazu.

Innym powodem do uaktualniania widoki wykazu będzie kolumny widoku zgodności, które są przechowywane nazwy użytkowników i identyfikatory typu może zwrócić NULL lub Przepełnienie arytmetyczne wyzwalacza.Jest tak, ponieważ można utworzyć więcej niż 32 767 użytkownicy, grupy i role i 32 767 typów danych.Na przykład, jeśli trzeba utworzyć 32 768 użytkowników, a następnie uruchom następującą kwerendę: SELECT * FROM sys.sysusers.Jeśli zestaw na ARITHABORT kwerenda nie powiedzie się z powodu błędu przepełnienie arytmetyczne .Jeśli ARITHABORT jest zestaw na wyłączone, uidto funkcjakolumna zwraca wartość NULL.

Aby uniknąć tych problemów, zaleca się używać nowe widoki wykazu , który może obsłużyć zwiększonej liczby identyfikatory użytkownika i identyfikatory typu.Poniższa tabela zawiera listę kolumn, które są przedmiotem tego przepełnienia.

Nazwa kolumny

Widok zgodności

SQL Widok Server 2005

xusertype

syscolumns

sys.Columns

UserType

syscolumns

sys.Columns

memberuid

sysmembers

sys.database_role_members

groupuid

sysmembers

sys.database_role_members

Identyfikator UID

sysobjects

sys.Objects

Identyfikator UID

sysprotects

  • sys.database_permissions

  • sys.server_permissions

kredytodawca

sysprotects

  • sys.database_permissions

  • sys.server_permissions

xusertype

systypes

sys.types

Identyfikator UID

systypes

sys.types

Identyfikator UID

sysusers

sys.database_principals

altuid

sysusers

sys.database_principals

GID

sysusers

sys.database_principals

Identyfikator UID

syscacheobjects

sys.dm_exec_plan_attributes

Identyfikator UID

sysprocesses

sys.dm_exec_requests