Udostępnij za pośrednictwem


Dzielenie zmienia funkcje aparatu bazy danych programu SQL Server 2008 R2

Ostrzeżenie

W przypadku programu SQL Server 2008 R2 nie ma zmian zawartości wymienionej w tym temacie.

W tym temacie opisano zmiany podziału Aparat baz danych.Zmiany te mogą przerwać aplikacje, skrypty lub funkcje, które są oparte na starszych wersjach SQL Server.Te problemy mogą wystąpić podczas uaktualniania.Aby uzyskać więcej informacji, zobacz Przygotowanie do uaktualnienia przy użyciu Upgrade Advisor.

Sortowanie

Funkcja

Opis

Nowe ustawienia sortowania

SQL Server 2008 wprowadzenie nowych ustawień sortowania, znajdujące się w pełnej wyrównanie z sortowania dostarczane przez system Windows Server 2008.Te 80 nowych ustawień sortowania poprawiły lingwistyczne dokładności i są oznaczane * odwołania do wersja _100.Jeśli wybierzesz nowy sortowania dla serwera lub bazy danych, należy pamiętać, sortowanie nie mogą być uznane przez klient starszych sterowników klient.Nierozpoznany sortowania może spowodować aplikacji zwracać błędy i nie powiedzie się.Rozważmy następujące rozwiązania:

  • Uaktualnienia systemu operacyjnego klient, tak aby podstawowej metody sortowania systemu są aktualizowane.

  • Jeśli komputer kliencki ma zainstalowane oprogramowanie klient bazy danych, należy rozważyć zastosowanie aktualizacji usługa do bazy danych oprogramowania klienckiego.

  • Wybierz istniejące sortowanie, który mapuje strona kodowa na komputerze klient.

Aby uzyskać więcej informacji, zobacz Ustawiania i modyfikowania ustawień sortowania.

Common Language Runtime (CLR)

Funkcja

Opis

Zespoły CLR

Po uaktualnieniu bazy danych do SQL Server 2008, Microsoft.SqlServer.Types wirtualny plik dziennika do obsługi nowych typów danych jest instalowany automatycznie.Upgrade Advisor zasady wykrywać dowolnego typu użytkowników lub zespoły z konfliktu nazw.Doradca uaktualnienia będzie doradzać, zmiana nazwy każdego konfliktu wirtualny plik dziennikai zmiany nazwy dowolnego typu konflikty albo przy użyciu nazw dwóch części kodu 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 nazwy tego wirtualny plik dziennika i umieść bazę danych w trybie podejrzanych.

Jeśli istnieje typ użytkownika o nazwie konflikty podczas uaktualniania, specjalnych kroków nie są pobierane.Po uaktualnieniu będzie istnieć stary typ użytkownika i nowy typ systemu.Typ użytkownika będą dostępne tylko przy użyciu nazwy dwóch części.

Zespoły CLR

SQL Server 2008 instaluje.NET Framework 3.5 SP1, która aktualizuje bibliotek w globalnej pamięci podręcznej zestawów (GAC).Jeśli nieobsługiwane bibliotek zarejestrowanych w SQL Server bazy danych, z SQL Server aplikacji mogą przestać działać po uaktualnieniu do SQL Server 2008.Wynika to obsługi lub uaktualniania biblioteki w pamięci podręcznej GAC nie aktualizuje zespołów wewnątrz SQL Server.Jeśli wirtualny plik dziennika istnieje zarówno w SQL Server bazy danych i w pamięci podręcznej GAC, dwóch kopii wirtualny plik dziennika musi dokładnie dopasowania.Jeśli nie są zgodne, wystąpi błąd, gdy wirtualny plik dziennika jest używany przez SQL Server integracja CLR.Aby uzyskać więcej informacji, zobacz Obsługiwane.NET Framework bibliotek.

Po uaktualnieniu bazy danych, usługa lub uaktualnić kopię wirtualny plik dziennika wewnątrz sieci SQL Server baz danych z instrukcja ALTER wirtualny plik dziennika.Aby uzyskać więcej informacji, zobacz bazy wiedzy Knowledge Base artykuł 949080.

wykrywać, czy używana jest dowolna nieobsługiwany.NET framework biblioteki w aplikacji, uruchom następującą kwerendę bazy danych.

SELECT name FROM sys.assemblies WHERE clr_name LIKE '%publickeytoken=b03f5f7f11d50a3a,%';

Procedur CLR

Przy użyciu personifikacji wewnątrz funkcji zdefiniowanej przez użytkownika CLR, zagregowanych danych zdefiniowanych 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.

Następujące scenariusze powiodła się w SQL Server 2005 , ale niepowodzenie w SQL Server 2008.Rezolucje są dostarczane dla każdego scenariusza.

  1. CLR zdefiniowanej przez użytkownika funkcja, zdefiniowanej przez użytkownika wartość zagregowana, lub UDT metoda, używającej personifikacji ma parametr typu nvarchar(max), varchar(max), varbinary(max), ntext, text, image, lub duże UDT i nie ma DataAccessKind.Read atrybut metody.

    Aby rozwiązać ten problem, Dodaj DataAccessKind.Read atrybut metoda, należy ponownie skompilować zestawu, a re -wdrożyć rutynowych i zgromadzenie.

  2. CLR funkcja zwracająca tabelę z Init metoda, która przeprowadza personifikacji.

    Aby rozwiązać ten problem, Dodaj DataAccessKind.Read atrybut metoda, należy ponownie skompilować zestawu, a re -wdrożyć rutynowych i zgromadzenie.

  3. CLR funkcja zwracająca tabelę z FillRow metoda, która przeprowadza personifikacji.

    Aby rozwiązać ten problem, usuń personifikacji z FillRow metoda.Nie dostęp do zasobów zewnętrznych za pomocą FillRow metoda.Zamiast tego dostępu do zasobów zewnętrznych z Init metoda.

Dynamiczne zarządzanie widokami

Wyświetlanie

Opis

sys.dm_os_sys_info

Usunięto cpu_ticks_in_ms i sqlserver_start_time_cpu_ticks kolumny.

sys.dm_exec_query_resource_semaphores sys.dm_exec_query_memory_grants

resource_semaphore_id Kolumna jest unikatowy identyfikator w SQL Server 2008.Ta zmiana może wpłynąć na wykonanie kwerendy rozwiązywania problemów.Aby uzyskać więcej informacji, zobacz sys.dm_exec_query_resource_semaphores (języka Transact-SQL).

Błędy i zdarzenia

Funkcja

Opis

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 używania tylko Windows uwierzytelniania.W SQL Server 2008, zamiast zwracany jest błąd 18456.

SHOWPLAN

Funkcja

Opis

Schemat SHOWPLAN XML

Nowy SeekPredicateNew element zostanie dodany do schematu Showplan XML i otaczający sekwencji xsd (SqlPredicatesType) jest konwertowany na <xsd:choice> element.Zamiast jednego lub więcej SeekPredicate elementów, jeden lub więcej SeekPredicateNew elementy mogą teraz wyświetlane w formacie XML Showplan.Dwa elementy wzajemnie się wykluczają.SeekPredicate jest przechowywana w schemacie Showplan XML wstecz zgodności; Jednakże kwerend utworzonych w planów SQL Server 2008 może zawierać SeekPredicateNew element.Aplikacje, które oczekują, że tylko pobrać SeekPredicate podrzędność z węzła ShowPlanXML/BatchSequence/Batch/instrukcji/StmtSimple/QueryPlan/RelOp/IndexScan/SeekPredicates może się nie powieść, jeśli SeekPredicate element nie istnieje.Ponownie zapisuje aplikacji albo oczekiwać SeekPredicate lub SeekPredicateNew element w tym węźle.Aby uzyskać więcej informacji, zobacz Ulepszenia w podzielonym na partycje tabel i indeksów przetwarzania kwerendy.

Schemat SHOWPLAN XML

Nowy IndexKind atrybut jest dodawany do TypObiektu typu złożonego w schemacie Showplan XML.Aplikacje, które ściśle poprawności SQL Server Plany przeciwko SQL Server 2005 schematu spowoduje niepowodzenie.

Transact-SQL

Funkcja

Opis

Zdarzenie ALTER_AUTHORIZATION_DATABASE DDL

W SQL Server 2005, po ALTER_AUTHORIZATION_DATABASE zdarzenie DDL, wartości "object" jest zwracany w TypObiektu elementu 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śli nieprawidłowy styl jest przekazywana do funkcja konwersji, błąd jest zwracany typ konwersji jest plikiem binarnym znaku lub znaków na liczbę dwójkową.W starszych wersjach SQL Server, jest nieprawidłowy styl zestaw do styl domyślny plik binarny do znaków i znaków na dwójkową konwersje.

REVOKE-przyznanie/odmowa wykonanie na zespoły

Uprawnienie Wykonywanie nie może być przyznana, odmowa lub odwołany do zespołów.To uprawnienie nie ma wpływu i teraz powoduje błąd.Przyznania, odmowy lub odwołać uprawnienia wykonywania na przechowywane procedury lub funkcje odwołujące metoda wirtualny plik dziennika.

System typów REVOKE-przyznanie/odmowa uprawnień

Uprawnienia nie może być przyznane, odmowa lub odwołany do typów systemu.W starszych wersjach SQL Server, instrukcje te pomyślnie, ale braku efektu.W SQL Server 2008, zwracany jest błąd.

GRUPUJ WEDŁUG

klauzula GROUP BY nie może zawierać podzapytanie w wyrażenie używany przez listę do grupy.W starszych wersjach SQL Server, to było dozwolone.W SQL Server 2008, zwracany jest błąd 144.

Na przykład poniższy kod pomyślnie w programie SQL Server 2005 i awarii programu SQL Server 2008.

DECLARE @Test TABLE(a int NOT NULL);
INSERT INTO @Test SELECT 1 union ALL SELECT 2;
SELECT COUNT(*) 
FROM @Test
GROUP BY CASE WHEN a IN (SELECT t.a FROM @Test AS t)
THEN 1 ELSE 0 
END;

Klauzula wyjścia

Aby zapobiec rodzaju klauzula wyjścia nie odwołanie kolumna z widoku lub wbudowane funkcja zwracająca tabelę po tej kolumna jest definiowana przez jedną z następujących metod:

  • podzapytanie.

  • Funkcja zdefiniowana przez użytkownika, wykonującego dostępu do danych użytkownika lub systemu lub zakłada, że przeprowadzenie takiego dostępu.

  • Kolumna obliczana, zawierający w definicji funkcja zdefiniowanej przez użytkownika, wykonujący dostępu do danych użytkownika lub systemu.

Gdy SQL Server wykryje taką kolumna w klauzula wyjścia powstaje błąd 4186.Aby uzyskać więcej informacji, zobacz MSSQLSERVER_4186.

Wyjście do klauzula

tabela miejsce docelowe klauzula dane wyjściowe do nie może mieć żadnych włączonych wyzwalaczy.

precompute rank Opcja poziom serwera

Ta opcja nie jest obsługiwana w SQL Server 2008.Modyfikowanie aplikacji korzystających aktualnie tę funkcję w możliwie najkrótszym terminie.

Wskazówka tabela READPAST

Wskazówka READPAST tabela nie można określić, gdy opcja READ_COMMITTED_SNAPSHOT bazy danych jest zestaw on i jest spełniony jeden z następujących warunków:

  • Poziom izolacji transakcji sesja jest ODCZYTAĆ zatwierdzone.

  • Wskazówka tabela parametr READCOMMITTED jest również określone w kwerendzie.

Aby określić wskazówka READPAST w tych przypadkach, usuń wskazówka tabela parametr READCOMMITTED, jeśli jest obecny i zawierają wskazówkę tabela READCOMMITTEDLOCK w kwerendzie.

sp_helpuser

Następujące nazwy kolumn, które są zwracane w zestaw wyników z sp_helpuser procedura składowana zmieniła.

Poprzednia nazwa kolumnaNowa nazwa kolumna
GroupNameRoleName
Group_nameRole_name
Group_idRole_id
Users_in_groupUsers_in_role

Przezroczyste szyfrowanie danych

Szyfrowanie danych przezroczyste (TDE) jest wykonywane poziom we/wy: strukturę strony niezaszyfrowanej w pamięci i są szyfrowane tylko wtedy, gdy strona jest zapisywany na dysku.Zarówno pliki bazy danych i pliki dziennika są szyfrowane.Aplikacje innych producentów, które omijają regularne SQL Server mechanizm dostępu do stron (na przykład przez skanowanie bezpośrednio plików danych lub dziennika), nie powiedzie się, gdy baza danych używa TDE, ponieważ dane są szyfrowane pliki.Takie aplikacje mogą korzystać z okna kryptograficzny interfejs API do opracowania rozwiązania do odszyfrowania danych poza SQL Server.

XQuery

Funkcja

Opis

Obsługa DateTime

W SQL Server 2005, typy danych xs:time, xs:date, i xs:dateTime nie ma obsługi timezone.Strefa czasowa danych jest mapowany UTC timezone.SQL Server 2008, zapewnia zgodność standardowe zachowanie wynikające następujące zmiany:

  • Do sprawdzania poprawności wartości bez timezone.

  • Strefa czasowa dostarczone lub braku timezone jest zachowywany.

  • Reprezentacji wewnętrznej pamięci masowej jest modyfikowany.

  • Zwiększa rozdzielczość przechowywane wartości.

  • Lata ujemne są niedozwolone.

Modyfikowanie aplikacji i wyrażeń XQuery nowe wartości typu.Aby uzyskać więcej informacji, zobacz Za pomocą języka XML z czas, data, dataczas2, a dataczasprzesunięcia typów danych.

Wyrażenia XQuery i Xpath

W SQL Server 2005, kroki w XQuery lub XPath wyrażenie się od dwukropka (': ') są dozwolone.Na przykład, następująca instrukcja zawiera badanie nazwy (CTR02) w ścieżka wyrażenie, które rozpoczyna się od dwukropka.

SELECT FileContext.query('for n$ in //CTR return <C>{data )(n$/:CTR02)} </C>) AS Files FROM dbo.MyTable;

W SQL Server 2008, to użycie jest niedozwolone, ponieważ nie jest zgodna z normami XML.Zwracany jest błąd 9341.Usuwanie wiodących dwukropka lub określić prefiks nazwy badania — na przykład ($ n/CTR02) lub (n$ / p1:CTR02).

Łączenie

Funkcja

Opis

Łączenie z SQL Server macierzystego klienta przy użyciu protokołu SSL

Podczas łączenia się z SQL Server Native Client aplikacje używające "SERVER = skróconą; SIŁY szyfrowania = true " certyfikat, którego podmioty określić pełni kwalifikowane nazwy domen (FQDN) w połączeniu w przeszłości wynika z obniżone sprawdzania poprawności.SQL Server 2008 R2 zwiększa bezpieczeństwo, wymuszając FQDN podmioty certyfikatów.Aplikacje, które opierają się na obniżone sprawdzania poprawności, należy wykonać jedną z następujących czynności:

  • Użyj nazwy FQDN w połączeniu z ciąg.

    • Ta opcja nie wymaga ponownego kompilowania aplikacji, jeśli słowa kluczowego serwera połączenia ciąg skonfigurowane poza aplikacji.

    • Ta opcja nie działa dla aplikacji, które mają ich ustalony ciągów połączenia.

    • Ta opcja nie działa dla aplikacji używających dublowania bazy danych od odpowiedzi serwera dublowanego prostą nazwą.

  • Dodaj alias skróconą do mapowania nazwy FQDN.

    • Ta opcja działa nawet dla aplikacji, które mają ich ustalony ciągów połączenia.

    • Ta opcja nie działa dla aplikacji korzystających z dublowania bazy danych od dostawców wyszukiwania nie aliasy dla nazw partner odebranych pracy awaryjnej.

  • Mają certyfikat wystawiony dla skróconą.

    • Ta opcja działa dla wszystkich aplikacji.