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 |
|
kredytodawca |
sysprotects |
|
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 |
Zobacz także