Breaking Changes to Database Engine Features in SQL Server 2008
W tym temacie opisano zmiany podziału Database Engine. Te zmiany może spowodować uszkodzenie aplikacji, skryptów lub funkcje, które są oparte na starszych wersjach SQL Server. Te problemy mogą wystąpić podczas uaktualniania.Aby uzyskać więcej informacji zobaczUsing Upgrade Advisor to Prepare for Upgrades.
Ustawienia sortowania
Funkcja |
Description |
---|---|
Nowe ustawienia sortowania |
SQL Server 2008 wprowadzenie do nowych ustawień sortowania, znajdujące się w pełnym wyrównanie z ustawień sortowania, dostarczanych przez system Windows Server 2008.Te 80 nowych ustawień sortowania zostały udoskonalone lingwistyczne dokładność i są oznaczone * _100 wersja odwołania.Jeśli wybierzesz nowy sortowania dla serwera lub bazy danych, należy pamiętać, sortowanie nie mogą być rozpoznawane przez klientów ze starszych sterowników klient.Nierozpoznany sortowania może spowodować, że aplikacja zwracać błędy i nie powiedzie się.Należy wziąć pod uwagę następujące rozwiązania:
Aby uzyskać więcej informacji zobaczSetting and Changing Collations. |
Plików wykonywalnych języka wspólnego (CLR)
Funkcja |
Description |
---|---|
Zestawy CLR |
Po uaktualnieniu bazy danych SQL Server 2008, Microsoft.SqlServer.Types wirtualny plik dziennika do obsługi nowych typów danych jest instalowana automatycznie. Reguły Doradcy uaktualnienia wykryć typ użytkownika ani zestawy z konfliktu nazw.Doradca uaktualnienia będzie informacji zmiany nazwy dowolnego wirtualny plik dziennika powodujących konflikt i albo dowolnego typu powodujące konflikt zmiany nazwy lub korzystanie z dwóch części nazw w kodzie do odwoływania się do istniejących typu użytkownika. Jeśli uaktualnienie bazy danych wykryje wirtualny plik dziennika użytkownika o nazwie powodujące konflikt, będzie automatycznie zmiany nazwy tego wirtualny plik dziennika i umieścić bazy danych w trybie podejrzanych. CERTYFIKAT, PROTOKOŁU KERBEROScertyfikat, NEGOCJOWANIAcertificate_id |
Zestawy CLR |
SQL Server 2008 instaluje system .NET Framework 3.5 SP1, która aktualizuje bibliotek w globalnej pamięci podręcznej zestawów (GAC).Jeśli ma nieobsługiwany bibliotek zarejestrowanych w SQL Server Baza danych, sieci SQL Server Aplikacja może przestać działać po uaktualnieniu systemu do SQL Server 2008. Dzieje się tak, ponieważ naprawy lub uaktualnienia bibliotek w pamięci podręcznej GAC nie aktualizuje zestawów wewnątrz SQL Server. Jeśli zespół istnieje zarówno w SQL Server bazy danych i w pamięci podręcznej GAC, musi dokładnie odpowiadać dwóch kopii tego wirtualny plik dziennika. Jeśli nie są zgodne, wystąpi błąd, gdy wirtualny plik dziennika jest używany przez SQL Server Integracja środowiska CLR. Aby uzyskać więcej informacji zobaczObsługiwany system .NET Framework biblioteki. Po uaktualnieniu bazy danych, usługa lub uaktualnić kopię wirtualny plik dziennika wewnątrz sieci SQL Server bazy danych przy użyciu instrukcja ALTER wirtualny plik dziennika. Aby uzyskać więcej informacji zobacz Artykuł bazy wiedza Microsoft wiedza Base 949080. Do wykrywać, czy korzystasz z każdej biblioteki .NET Framework nieobsługiwane w aplikacji, należy uruchomić następujące kwerendy w bazie danych.
|
Środowisko CLR procedur |
Przy użyciu personifikacji wewnątrz CLR funkcji zdefiniowanej przez użytkownika, zagregowanych przez użytkownika lub typów zdefiniowanych przez użytkownika (UDTs) może spowodować niepowodzenie z powodu błędu 6522 po uaktualnieniu systemu do aplikacji SQL Server 2008. W poniższych scenariuszach uda się SQL Server 2005 ale nie w SQL Server 2008. Dostępne są rozwiązania dla każdego scenariusza.
|
Dynamiczne zarządzanie widoki
Bez opuszczania środowiska, można zarządzać sieci fizycznej i łatwo zespołów projektów. |
Description |
---|---|
sys.dm_os_sys_info |
Usunięcie kolumny cpu_ticks_in_ms i sqlserver_start_time_cpu_ticks. |
sys.dm_exec_query_resource_semaphores sys.dm_exec_query_memory_grants |
Kolumna resource_semaphore_id nie jest unikatowy identyfikator w SQL Server 2008. Ta zmiana może wpłynąć na wykonanie kwerendy dotyczące rozwiązywania problemów.Aby uzyskać więcej informacji zobaczsys.dm_exec_query_resource_semaphores (języka Transact-SQL). |
Błędy i zdarzenia
Funkcja |
Description |
---|---|
Błędy logowania |
W SQL Server 2005, zwracany jest błąd 18452 podczas logowania SQL jest używany do łączenia się z serwerem, skonfigurowany do korzystania tylko z uwierzytelnianie systemu Windows. W SQL Server 2008, zamiast tego zostanie zwrócony błąd 18456. |
plan wykonania
Funkcja |
Description |
---|---|
Schemat XML plan wykonania |
Nowy SeekPredicateNew element zostanie dodany do schematu XML plan wykonania i otaczający sekwencji xsd (SqlPredicatesType) jest konwertowany na <xsd:Choice> element. Zamiast jednego lub więcej SeekPredicate co najmniej jeden SeekPredicateNew elementów teraz może pojawić się w języku XML plan wykonania.Dwa elementy wzajemnie się wykluczają.SeekPredicate jest przechowywana w schemacie XML plan wykonania dla Wstecz zgodności, jednak kwerendy planów utworzonych w SQL Server 2008 może zawierać SeekPredicateNew element.Aplikacje, które oczekują, że w celu pobrania tylko SeekPredicate podrzędność z węzła ShowPlanXML/BatchSequence/partia/deklaracji/StmtSimple/QueryPlan/RelOp/IndexScan/SeekPredicates może się nie powieść, jeśli SeekPredicate element nie istnieje.Ponownie zapisuje aplikacji albo oczekiwać SeekPredicate or SeekPredicateNew element w tym węźle.Aby uzyskać więcej informacji zobaczKwerendy przetwarzania rozszerzenia na podzielonym na partycje, tabele oraz indeksy. |
Schemat XML plan wykonania |
Nowy IndexKind dodaje się atrybutTypu obiektu typu złożonego w schemacie XML plan wykonania.Aplikacje, które ściśle sprawdzania poprawności SQL Server Plany przed SQL Server 2005 Schemat nie powiedzie się. |
Transact-SQL
Funkcja |
Description |
---|---|
Zdarzenie ALTER_AUTHORIZATION_DATABASE DDL |
W SQL Server 2005, po uruchomieniu zdarzenie DDL ALTER_AUTHORIZATION_DATABASE, 'obiektu' jest zwracany w wartości Typu obiektu element xml EVENTDATA dla tego zdarzenie, gdy obiekt jest typu obiektu zabezpieczany w operacji (DDL) języka definicja danych.W SQL Server 2008, zwracana jest rzeczywisty typ (na przykład 'Tabela' lub 'Funkcja'). |
KONWERTOWANIE |
Jeżeli nieprawidłowa stylu jest przekazywana do funkcja konwersji, zwracany jest błąd podczas konwersji jest binarne znaku lub znaków do wartości binarnej.We wcześniejszych wersjach SQL Server, jest nieprawidłowy styl zestaw do domyślnego stylu dla konwersji plik binarny do znaków i znaków na binarny. |
GRANT/DENY/REVOKE wykonać na zestawy |
Uprawnienie wykonać nie mogą być udzielone, odmowa lub odwołane do zespołów.To uprawnienie nie ma wpływu i teraz powoduje błąd.Udzielić, odmawianie lub odwołać uprawnienia wykonać na przechowywane procedury lub funkcje odwołujące metoda wirtualny plik dziennika. |
GRANT/DENY, REVOKE uprawnienia w systemie typów |
Uprawnienia nie może być udzielone, odmowa lub odwołany na typy systemu.We wcześniejszych wersjach SQL Server, instrukcje te została wykonana pomyślnie, ale nie są uwzględniane. W SQL Server 2008, zwracany jest błąd. |
Klauzula wyjście |
Aby zapobiec nondeterministic klauzula wyjście nie może odwołać kolumna z widoku lub wbudowanej wartości tabela funkcja podczas tej kolumna jest definiowana przez jedną z następujących metod:
Kiedy SQL Server wykrywa taki kolumna w klauzula wyjście powstaje błąd 4186. Aby uzyskać więcej informacji zobaczMSSQLSERVER_4186. |
klauzula INTO wyjście |
W tabela miejsce docelowe klauzula INTO wyjście nie może mieć żadnych włączonych wyzwalaczy. |
precompute rangi opcji poziom serwera |
Ta opcja nie jest obsługiwany w SQL Server 2008. Modyfikowanie aplikacji, które obecnie korzystać z tej funkcji jak najszybciej. |
Wskazówka dotycząca READPAST tabela |
Wskazówka READPAST tabela nie można określić, gdy opcja READ_COMMITTED_SNAPSHOT bazy danych jest ustawiona na ON i jest spełniony jeden z następujących warunków:
level_3_grid |
sp_helpuser |
Następujące nazwy kolumn, które są zwracane zestaw wyników procedura przechowywana sp_helpuser uległy zmianie.
Poprzednia nazwa kolumnaNowa nazwa kolumna
Nazwa_grupyRoleName
Group_nameRole_name
Group_idRole_id
Users_in_groupUsers_in_role
|
Przezroczyste szyfrowanie danych |
Szyfrowanie danych przezroczyste (TDE) jest wykonywane poziom we/wy: strukturę strona jest niezaszyfrowana w pamięci i są szyfrowane tylko wtedy, gdy strona są zapisywane na dysku. Pliki bazy danych i pliki dziennika są szyfrowane.Aplikacje innych producentów, które omijają regularne SQL Server mechanizm dostępu do strony (na przykład przez skanowanie plików danych lub dziennika bezpośrednio), nie powiedzie się, gdy baza danych używa TDE, ponieważ dane są szyfrowane w plikach. Takie aplikacje mogą korzystać z okna kryptograficzny interfejs API do opracowania rozwiązania do odszyfrowania danych poza SQL Server. |
XQuery
Funkcja |
Description |
---|---|
Obsługa daty/godziny |
W SQL Server 2005, typy danych xs:time, xs:date, a xs:dateTime nie jest obsługiwane timezone. Dane timezone jest mapowany na timezone czasu UTC.SQL Server 2008, zapewnia zachowanie standardowe zgodność, powodując następujące zmiany:
Modyfikowanie aplikacji i XQuery wyrażenia, aby uwzględnić nowe wartości typu.Aby uzyskać więcej informacji zobaczUsing XML with time, date, datetime2, and datetimeoffset Data Types. |
Wyrażenia XQuery i wyrażenia XPath |
W SQL Server 2005, kroków w XQuery lub wyrażenie XPath wyrażeniem, które zaczynają się od dwukropka (":") są dozwolone. Na przykład następująca instrukcja zawiera (test do nazwyCTR02) w wyrażeniu ścieżka rozpoczynającą się od dwukropka.
W SQL Server 2008, to użycie jest niedozwolona, ponieważ nie jest zgodna ze standardami XML. Zwracany jest błąd 9341.Usuwanie wiodących dwukropek lub określić prefiks do nazwy testu — na przykład, (n $ / CTR02) lub (n $ / p1:CTR02). |
Historia zmian
Microsoft Learning |
---|
Dodaje przerywania zmian dla wyrażeń XQuery i wyrażenia XPath. |
See Also