Exportovat (0) Tisk
Rozbalit vše
Tento článek byl přeložen strojově počítačem. Původní text zobrazíte přesunutím ukazatele myši nad jednotlivé věty článku.
Překlad
Originál

ALTER DATABASE úroveň kompatibility jazyka Transact-SQL)

Nastaví určité chování databáze kompatibilní s určenou verze SQL Server. V nové SQL Server 2008, nahradí následující syntaxi příkazu ALTER DATABASE sp_dbcmptlevel postup pro stanovení úroveň kompatibility databáze.Ostatní možnosti ALTER DATABASE naleznete v tématu ALTER DATABASE (Transact-SQL).

Topic link iconPravidla syntaxe jazyka Transact-SQL


ALTER DATABASE database_name 
SET COMPATIBILITY_LEVEL = { 80 | 90 | 100 }

database_name

Je název databáze, která budou změněna.

COMPATIBILITY_LEVEL {80 | 90 | 100}

Je verze SQL Server databáze, které je třeba vypracovat kompatibilní. Hodnota musí být jeden z následujících:

80 = SQL Server 2000

90 = SQL Server 2005

100 = SQL Server 2008

Při všech instalacích SQL Server 2008, výchozí úroveň kompatibility je 100. Databáze vytvořené v SQL Server 2008 sada této úrovně Pokud modelová databáze má nižší úroveň kompatibility. Pokud databázi inovována na SQL Server 2008 z jakékoli starší verze SQL Server, databáze zachová jeho stávající úroveň kompatibility, pokud je alespoň 80. Inovace databáze s úroveň kompatibility nižší než 80 nastaví úroveň kompatibility 80 databáze.To se týká databází systému i uživatele.Chcete-li změnit úroveň kompatibility databáze použít ALTER DATABASE.Chcete-li zobrazit aktuální úroveň kompatibility databáze, dotaz compatibility_level sloupec v zobrazení katalogu sys.databases.

Pomocí úroveň kompatibility pro zpětná kompatibilita

Úroveň kompatibility ovlivňuje chování pouze pro zadanou databázi, nikoli pro celý server.Úroveň kompatibility poskytuje pouze částečnou zpětnou kompatibilitu s předchozími verzemi SQL Server. Jako pomůcka prozatímní přenesení můžete použít úroveň kompatibility k řešení verze rozdíly v chování, které se řídí nastavením odpovídající úroveň kompatibility.Pokud existující SQL Server aplikace jsou ovlivněny behaviorální rozdíly v SQL Server 2008, převedení aplikace pracovat správně. Potom pomocí ALTER DATABASE změňte úroveň kompatibility až 100.Nové nastavení kompatibility pro databázi se platí v případě, že databáze je provedena další aktuální (zda jako výchozí databáze na přihlášení nebo na právě zadané v výraz USE).

Doporučené postupy

Změna úroveň kompatibility jsou uživatelé připojení k databázi může způsobit nesprávné výsledné sady dotazů aktivní.Například pokud úroveň kompatibility změní, zatímco se kompiluje plán dotazů, sestavený plán může být založena na obou staré a nové úrovně kompatibility, výsledkem nesprávný plán a potenciálně nepřesné výsledky.Navíc může být problém úrok připisován každý Pokud plán je umístěn v mezipaměti plán a znovu použity pro následné dotazy.Chcete-li se vyhnout nepřesné výsledky, doporučujeme následujícím postupem změnit úroveň kompatibility databáze:

  1. Nastavit databázi na režimu přístupu jedním uživatelem pomocí příkazu ALTER DATABASE sada SINGLE_USER.

  2. Změna úroveň kompatibility databáze.

  3. Pomocí příkazu ALTER DATABASE sada MULTI_USER umístit databázi v režimu víceuživatelský přístup.

  4. Další informace o nastavení režimu přístupu databáze naleznete v tématu ALTER DATABASE (Transact-SQL).

sada možnosti

Nové funkce může pracovat v rámci starší úrovně kompatibility, ale sada možnosti vyžadovat úpravy.Například použití xml Typ dat pod úroveň kompatibility 80 vyžaduje příslušné možnosti ANSI sada. Také je-li úroveň kompatibility databáze nastavena na hodnotu 90 nebo vyšší, sada ANSI_WARNINGS ON implicitně nastaví ARITHABORT ON.Pokud je úroveň kompatibility databáze nastaven na 80, možnost ARITHABORT musí být explicitně nastavena na ON.Další informace naleznete v tématusada možnosti, které ovlivnit výsledky.

Úrovně kompatibility a uložených procedur

Při spustí uložená procedura, používá databázi, ve které je definována aktuální úroveň kompatibility.Při změně nastavení kompatibility z databáze všechny jeho uložené procedury jsou automaticky recompiled odpovídajícím způsobem.

Rozdíly mezi kompatibility úroveň 90 80 a úroveň

Tato část popisuje nové chování zaveden s úroveň kompatibility 90.

Následující změny v chování na úroveň kompatibility 90 dojít.

Úroveň kompatibility nastavení 80

Úroveň kompatibility nastavení 90

Možnost nárazu

Uzamčení tipy v klauzule FROM je klíčové slovo WITH vždy volitelné.

S některými výjimkami jsou podporovány odkazy na tabulka v klauzule FROM pouze v případě odkazy servery jsou zadány s klíčové slovo WITH.Další informace naleznete v tématuFROM (Transact-SQL).

High (Vysoká)

* = A = * operátory pro vnější spojit jsou podporovány s upozorněním.

Tyto operátory nejsou podporovány; klíčové slovo vnější spojit by měla být použita.

High (Vysoká)

Při vytváření vazba odkazy na sloupce v seznamu ORDER BY ve sloupcích, definované v seznamu SELECT, jsou ignorovány sloupec nejasnosti a předpony sloupce někdy ignorovány.To může způsobit, že vrátíte v neočekávané pořadí sada výsledků dotazu dotazu.

Například klauzule ORDER s jedním sloupcem na dvě části (<table_alias>. <column>) používané jako odkaz na sloupec v seznamu SELECT je přijato, ale alias tabulka je ignorována. Zvažte následující dotaz.

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

Při spuštění, je ignorováno Předpona sloupec v seznamu ORDER BY.Operace řazení nedochází ve sloupci (zadaný zdrojx.c1) očekávaným; místo se vyskytuje na odvozené c1 sloupec, který je definován v dotazu. Plán vykonání tohoto dotazu ukazuje, že jsou nejprve vypočítané hodnoty odvozený sloupec a potom setříděny podle vypočtených hodnot.

Chyby jsou aktivována sloupec nejasnosti.Sloupec předpony, pokud existuje, podle klauzule ORDER BY není ignorovány při vytváření vazba na sloupec definovaný v seznamu SELECT.

Zvažte následující dotaz.

SELECT c1 = -c1 FROM t_table AS x ORDER BY x.c1

Při spuštění, předponu sloupců v klauzule ORDER by ignorován.Operace řazení dochází na sloupec (zadaný zdrojx.c1) podle očekávání. Plán vykonání tohoto dotazu ukazuje, že operátor řazení objednávky vrácených z řádků t_table a potom hodnoty odvozený sloupec c1 v seznamu SELECT definováno jsou vypočítána.

Medium (Střední)

V INSERT SELECT z unie různých datových typů, každá pobočka UNION přímo přetypovat na typ cílová databáze sloupec INSERT.Přestože unie, který sama používá pravděpodobně nezdaří z důvodu nekompatibilní typ převody, INSERT SELECT umožňuje succeed unie protože pobočky výsledek typu unie nikdy převedena.

Typ UNION výsledek odvozen nezávisle INSERT SELECT.Každá pobočka unie přetypovat na typ UNION výsledek a pak přetypovat na typ cílového sloupec INSERT.Pokud unie jsou nekompatibilní typy, první nádech může způsobit chybu.Úroveň kompatibility 90 spustit, je nutné opravit všechny svazy nekompatibilní typ použité uvnitř INSERT SELECT.

Medium (Střední)

Vložit a aktualizovat operace prostřednictvím zobrazení jsou nesprávně podporovány na zobrazení, která při zobrazení nebo zobrazení odkazovaného používá klauzule TOP, zadat klauzule WITH CHECK OPTION.

Vložit a aktualizovat operace prostřednictvím zobrazení nejsou podporovány na zobrazení, která používá WITH CHECK OPTION, při zobrazení nebo zobrazení odkazovaného používá klauzule TOP.

Medium (Střední)

UNIE proměnné délky sloupce a pevně stanovenou délku sloupce vznikne sloupec pevné délky.

UNIE proměnné délky sloupce a pevně stanovenou délku sloupce vznikne sloupec proměnné délky.

Medium (Střední)

sada XACT_ABORT OFF ignorován uvnitř aktivační události.Možnost je vždy sada on.

sada XACT_ABORT může být nastavena na OFF uvnitř aktivační události.

Medium (Střední)

Klauzule pro PROCHÁZENÍ je povoleno (a ignorovány) v zobrazení.

Klauzule pro PROCHÁZENÍ není povoleno v zobrazeních.

Medium (Střední)

Chyby doména řízeny není ANSI_WARNINGS.ARITHABORT sada se uplatní, pokud ANSI_WARNINGS nastaveny na hodnotu OFF a ARITHABORT žádnou změnu.

Chyby doména také řízen ANSI_WARNINGS a jsou závažnost chyby 16.Pokud ANSI_WARNINGS nebo ARITHABORT jsou ON, chybu je vyvolána namísto vracet hodnotu NULL.Tato změna může být porušena skripty uživatele, které závisí na ARITHABORT nastavena na hodnotu OFF.

Medium (Střední)

Pokud průchody komunikace dotaz vzdálená data Zdroj [OPENROWSET nebo OPENQUERY] vytvoří sloupec s duplicitními názvy, názvy duplicitní sloupec jsou ignorována explicitně pojmenují sloupců v dotazu.

Pokud dotaz průchody komunikace proti vzdálenému zdroj dat. [OPENROWSET nebo OPENQUERY] vznikne sloupec s názvy sloupců duplicitní, je aktivována chybu.

Low (Nízká)

Řetězcové konstanty znaků a varbinary konstanty velikost větší, než jsou považovány za 8000 text, ntextNebo image.

Znak řetězec konstanty a varbinary konstanty o velikosti větší než 8000 jsou považovány za typ varchar(max) (nebo nvarchar(max) and varbinary(max)respektive). Jedná-li změnit typ dat tabulka vytvořené pomocí SELECT … INTO, pokud seznam SELECT obsahuje tyto výrazy.

Low (Nízká)

Porovnání číselných typů)smallint, tinyint, int, bigint, numeric, decimal, smallmoney, money), se provádí převod comparand s nižší prioritou v hierarchii typu typu, jehož priorita je vyšší.

Typ číselné hodnoty jsou porovnány bez převodu.To poskytuje lepší výkon.Však to může způsobit některé změny v chování, zejména v případech, v němž převod způsobila přetečení výjimky.

Low (Nízká)

Vestavěné metadata funkce, které přijmout řetězcové argumenty jejich vstup zkrátit, pokud vstupní je delší než 4 000 znaků.

Funkce vestavěné metadata zvýšit chybu, pokud by vedlo k tomu, že by ke ztrátě znaků nonspace ve zkráceném čísle.

Low (Nízká)

Sada zakázaných znaků v nekotovaných identifikátor zůstane beze změny.

Složka Transact-SQL Analyzátor podporuje standard Unicode 3.2, které změní klasifikaci znaků pro některé mezinárodní znaky, které jsou nyní zakázány v nondelimited identifikátory.

Low (Nízká)

sada ANSI_WARNINGS ON není přepsat sada z sada ARITHABORT OFF pro případ chyby doména plovoucí bodu [, tedy negativní argumentů pro funkce log()].Pokud je ANSI_WARNINGS ON, ale ARITHABORT je vypnuto, plovoucí bod doména chyby nezpůsobí dotaz má být ukončen.

sada ANSI_WARNINGS ON zcela ARITHABORT OFF sada přepíše.Plovoucí bod doména chyby v tomto případě způsobí, že dotaz má být ukončen.

Low (Nízká)

Jiné než celočíselné konstanty jsou povolena (a ignorovány) v klauzule ORDER by.

Jiné než celočíselné konstanty nejsou povoleny v klauzule ORDER by.

Low (Nízká)

výraz sada prázdná (s žádná možnost přiřazení sada) je povolena.

Klauzule sada prázdná není povoleno.

Low (Nízká)

Atribut IDENTITY není odvozen správně pro sloupce, které vyrábí odvozené tabulka.

Atribut IDENTITY je odvozen správně pro sloupce, které vyrábí odvozené tabulky.

Low (Nízká)

Vlastnost možnost použití hodnoty null aritmetických operátorů přes plovoucí bod datový typ je vždy s možnou hodnotou Null.

Vlastnost možnost použití hodnoty null aritmetických operátorů nad plovoucí bod datový typ se změní na nonnullable pro případ, kdy vstupy jsou nonnullable a ANSI_WARNINGS je zapnuto.

Low (Nízká)

V INSERTvýraz SELECT s unie, typy, vyrobené sady jednotlivých výsledků všechny převedeny na cíl výsledek typu.

V INSERTvýraz SELECT s unie dominantní druh různých větví určena, a výsledky budou převedeny na daný typ před převáděna na typ cílové tabulka.

Low (Nízká)

V SELECTPRO výpis XML, hex(27) ( " znak ) a hex(22) (" znak) jsou je vždy entitized, i když není požadováno.

PRO XML entitizes hex(27) a hex(22) jen tehdy, je-li požadováno.Tyto entitized není v následujících situacích:

  • V hex(27) (na atribut obsahu " znak ) není entitized, pokud jsou hodnoty atributů tabulátory s "a hex(22) ( " znak ) není entitized, pokud jsou hodnoty atributů tabulátory s ".

  • V obsahu prvku hex(27) a hex(22) se nikdy entitized.

Low (Nízká)

V jazyce XML pro hodnotu časového razítka je mapována na celé číslo.

V jazyce XML pro hodnotu časového razítka je mapována na binární hodnotu.

Další informace naleznete v tématu PRO podpora formátu XML pro časové razítko datový typ.

Vysoké (Pokud timestamp sloupec je použit); jinak nízká.

Vysoký rozsah znaků Unicode (tři byty) v názvech pro XML a OPENXML, jsou reprezentovány pomocí 8 pozice.

Například pomocí 8 pozice, pro XML představuje bod kódu Unicode U+10000 takto:

<a_x00010000_ c1="1" />

Vysoký rozsah znaků Unicode (tři byty) v názvech pro XML a OPENXML, jsou reprezentovány pomocí 6 pozice.

Například pomocí 6 pozice, pro XML představuje bod kódu Unicode U+10000 takto:

<a_x010000_ c1="1" />

Low (Nízká)

V jazyce XML pro odvozené tabulka mapování v režimu AUTOMATICKY považovány za transparentně.

Příklad:

USE AdventureWorks
CREATE TABLE Test(id int);
INSERT INTO Test VALUES(1);
INSERT INTO Test VALUES(2);
SELECT * FROM (SELECT a.id AS a, 
b.id AS b FROM Test a 
JOIN Test b ON a.id=b.id) 
Test FOR XML AUTO;

Pokud úroveň kompatibility pro AdventureWorks je sada na 80, vytváří výše uvedeném příkladu:

<a a="1"><b b="1"/></a>

<a a="2"><b b="2"/></a>

V jazyce XML pro odvozené tabulka mapování v režimu AUTOMATICKY považovány za opaquely.

Pokud úroveň kompatibility pro AdventureWorks je nastavena na 90, vytvoří předchozího příkladu:

<Test a="1" b="1"/>

<Test a="2" b="2"/>

Vysoké (Pokud je režim pro XML AUTOMATICKY aplikován na zobrazení); jinak, nízká

Chcete-li řetězec money převody podporují znak zpětného lomítka (\) jako symbol měny pouze v jazyce japonština a korejština.

Ve všech řetězec, který je přijato znak zpětného lomítka (\) money převody ve všech jazycích. ISNUMERIC by vrátil hodnotu true při \ slouží jako symbol měny.

Pro databáze ve verzích SQL Server starší než SQL Server 2005, toto nové chování přeruší indexy a vypočítaného sloupce, které závisí ISNUMERIC vrátí hodnotu, která obsahuje \ a pro které jazyk korejština ani japonské.

Low (Nízká)

V důsledku aritmetický operátor je s možnou hodnotou Null, vždy i v případě, že jsou operandy s možnou bez hodnotou Null a ANSI_WARNINGS nebo ARITHABORT je zapnuto sada.

ANSI_WARNINGS nebo ARITHABORT nastaveno na výsledek plovoucí aritmetický operátor bod při nonnullable, pokud jsou oba operandy nonnullable.

Tato změna v možnost použití hodnoty null by mohl způsobit selhání při BCP se používá k hromadné exportovat data, binární formát z SQL Server 2000 Tabulka s vypočítaný sloupec používající plovoucí bod aritmetický operátor a BCP je potom používané hromadný import dat do nebo loženo INSERTSQL Server 2005 Tabulka se stejnou definici.

NoteNote:
Obě volby jsou vypnuto, Database Engine označí výsledek jako s možnou hodnotou Null. Toto je stejný jako v SQL Server 2000.

Low (Nízká)

Pro předdefinované funkce toto převzetí nvarchar jako parametr, pokud je zadaná hodnota varchar, hodnota je převedena na nvarchar(4 000). V SQL Server 2000, pokud je předán větší hodnota, je bez upozornění zkrácen.

Pro integrované funkce dané převzít nvarchar jako parametr, pokud je zadaná hodnota varchar, hodnota je stále převedena na nvarchar(4 000). Avšak, pokud je předán větší hodnota, SQL Server 2008 generuje chybu.

Úroveň kompatibility 90 spustit, je nutné opravit jakékoli vlastní kód, který se opírá o zkrácení chování.

Low (Nízká)

Sjednocení pevné délky ()char, binaryNebo nchar) řetězec s proměnnou délkou (varchar, varbinary, nvarchar) vrátí řetězec pevné délky výsledek.

Unie proměnná velikost řetězec a řetězec pevné velikosti vrátí řetězec proměnné velikosti.

Úroveň kompatibility 90 spustit, je nutné opravit všechna místa (indexy, dotazy a vypočítaného sloupce) závislé na typu, vyplývající ze sjednocení typu Proměnná velikost a typ pevné velikosti.

Low (Nízká)

Objekt názvy obsahující znak 0xFFFF jsou platné identifikátory.

Objekt názvy obsahující znak 0xFFFF nejsou platné identifikátory a nelze k němu získat přístup.

Úroveň kompatibility 90 spustit, je nutné přejmenovat objekty obsahující tento znak.

Low (Nízká)

V seznamu SELECT ISNUMERIC ("<string>'), vložené čárky v rámci <string> jsou významné.

Například následující SELECT ISNUMERIC('121212,12') dotaz vrátí 0. To označuje, že řetězec 121212,12 není číselné.

V seznamu SELECT ISNUMERIC ("<string>'), vložené čárky v rámci <string> jsou ignorovány.

Například následující SELECT ISNUMERIC('121212,12') dotaz vrátí 1. Toto označení, že řetězec 121212,12 je číselné.

Low (Nízká)

Dvojtečkou (:) po vyhrazené klíčové slovo v Transact-SQL výraz je ignorována.

Dvojtečkou (:) po vyhrazené klíčové slovo v Transact-SQL výraz způsobí selhání výraz.

Low (Nízká)

Klauzule GROUP v poddotaz, odkazující na sloupec z dotazu vnější úspěšné.

Klauzule GROUP v poddotaz, odkazující na sloupec z vnějšího dotazu vrátí chybu podle standardu SQL.

Low (Nízká)

Rozdíly mezi nižší úrovně kompatibility a úroveň 100

Tato část popisuje nové chování zaveden s úroveň kompatibility 100.

Úroveň kompatibility nastavení 90 nebo nižší

Úroveň kompatibility nastavení 100

Možnost nárazu

sada QUOTED_IDENTIFER vždy nastaven na ON pro vícepříkazové funkce tabulka s hodnotou vytvořené bez ohledu na sada úroveň relace.

Nastavení uvedená IDENTIFIKÁTOR relace je dodržet při vytvoření vícepříkazové funkce tabulka s hodnotou.

Medium (Střední)

Při vytváření nebo změnit funkce oddílu, datetime and smalldatetime literály ve funkci jsou vyhodnoceny, za předpokladu, že US_English jako nastavení jazyka.

Aktuální nastavení jazyka slouží k vyhodnocení datetime and smalldatetime literály ve funkce oddílu.

Medium (Střední)

Klauzule pro PROCHÁZENÍ je povolena (a ignorovány) v příkazech INSERT a SELECT INTO.

Klauzule pro PROCHÁZENÍ není povolen v příkazech INSERT a SELECT INTO.

Medium (Střední)

Fulltextové predikáty jsou povoleny v klauzule OUTPUT.

Predikáty fulltextového nejsou povoleny v klauzule OUTPUT.

Low (Nízká)

CREATE STOPLIST informace, ALTER informace STOPLIST a STOPLIST DROP informace nejsou podporovány.Stoplist systému je automaticky spojená s novým fulltextové indexy.

CREATE STOPLIST informace, ALTER informace STOPLIST a STOPLIST informace DROP jsou podporovány.

Low (Nízká)

KORESPONDENCE není vynucena jako vyhrazené klíčové slovo.

SLOUČENÍ je plně rezervované klíčové slovo.výraz SLOUČENÍ je podporována v 100 i 90 úrovně kompatibility.

Low (Nízká)

Pomocí <dml_table_source> argument výraz INSERT vyvolá chybu syntaxe.

Zachycení výsledky klauzule OUTPUT vnořené INSERT, UPDATE, DELETE, nebo sloučit výraz a vložení těchto výsledků do cílová databáze tabulka nebo zobrazení.To se provádí pomocí <dml_table_source> argument výraz INSERT.

Low (Nízká)

Není určena NOINDEX, DBCC CHECKDB nebo CHECKTABLE DBCC provádí kontroly konzistence fyzické a logické na jedné tabulka nebo indexované zobrazení a na všech jeho nonclustered i indexy XML.Prostorové indexy nejsou podporovány.

Není určena NOINDEX, DBCC CHECKDB nebo CHECKTABLE DBCC provádí obou kontrol konzistence fyzické a logické na jedné tabulce a na jeho nonclustered indexů.XML indexy, prostorové indexy a indexovaná zobrazení však konzistence pouze fyzické kontroly jsou prováděny ve výchozím nastavení.

Pokud není zadán EXTENDED_LOGICAL_CHECKS WITH, logické kontroly prováděny na indexovaná zobrazení, indexy XML a prostorové indexy, kde v současné době.Ve výchozím nastavení jsou konzistence fyzické kontroly prováděny před kontroly konzistence logické.Pokud NOINDEX není také zadán, jsou prováděny pouze logické kontroly.

Low (Nízká)

Při použití klauzule OUTPUT prohlášení manipulace jazyk (DML) dat a spuštění-čas dojde k chybě při spuštění výraz, celá transakce je ukončena a vrácena zpět.

Při použití klauzule OUTPUT prohlášení manipulace jazyk (DML) dat a spuštění-čas dojde k chybě při spuštění výraz, chování závisí na sada sada XACT_ABORT.sada XACT_ABORT je vypnuto, chybu výraz přerušení generovaných výraz jazyk DML pomocí klauzule OUTPUT bude ukončena z výpisu ale pokračuje v provádění dávka a transakce není vrácena zpět.sada XACT_ABORT ON je-li všechny chyby chodu generovaných výraz jazyk DML pomocí klauzule OUTPUT bude ukončena dávka a transakce je vrácena zpět.

Low (Nízká)

Jako vyhrazená klíčová slova není vynucena datová krychle a ROLLUP.

datová krychle a ROLLUP jsou vyhrazená klíčová slova v klauzule GROUP by.

Low (Nízká)

Ověření přísného se aplikuje na prvky XML anyType TYPE.

Ověření lax platí pro prvky anyType TYPE. Další informace naleznete v tématuZástupný znak komponent a ověření obsahu.

Low (Nízká)

Speciální atributy xsi: nil and xsi: type nelze dotazovat nebo upravovat příkazy jazyka manipulace data.

To znamená, že /e/@xsi:nil při selhání /e/@* Přeskočí xsi:nil and xsi:type v případě vícehodnotových atributů. V některých scénářích /e Vrátí xsi:nil and xsi:type z důvodu konzistence s atributy SELECT xmlCol, i když xsi:nil = "false".

Speciální atributy xsi: nil and xsi: type jsou uloženy jako běžný atributy a mohou být dotazovaný a změněn.

Například spuštění dotazu SELECT x.query('a/b/@*') Vrátí všechny atributy, včetně xsi: nil and xsi: type.Chcete-li vyloučit tyto typy v dotazu, nahrazení @* Route.txt @*[namespace-uri(.) != "Vložte identifikátor uri oboru názvů xsi" and not (local-name(.) = "type" Nebo local-name(.) ="nil".

Low (Nízká)

Uživatelem definované funkce převádějící hodnotou konstanta řetězec XML do SQL Server typ DateTime je označen jako deterministický.

Uživatelem definované funkce převádějící hodnotou konstanta řetězec XML do SQL Server typ DateTime je označen jako deterministický.

Low (Nízká)

Typy unie a seznamu XML nejsou plně podporovány.

Typy unie a seznamu jsou plně podporovány, včetně následujících funkcí:

  • Unie seznamu

  • Unie unie

  • Seznam typů atomický

  • Seznam unie

Low (Nízká)

Metoda je obsažen v zobrazení nebo vložené jsou neověří možnosti sada, vyžadované pro metodu xQuery funkce vracející tabulku.

Možnosti sada, vyžadované pro metoda xQuery jsou ověřeny při metodě je uveden v zobrazení nebo vložené funkce tabulka s hodnotou.Chybu je aktivována, pokud jsou nesprávně nastaveny možnosti metoda sada.

Další informace o nastavení požadovaných možností naleznete v tématu Nastavení možností (typ dat XML).

Low (Nízká)

Podle standardu XML není normalizované hodnoty atribut XML, které obsahují znaky na konci řádku (carriage return a line feed).To znamená jsou vráceny oba znaky namísto znak line feed.

Podle standardu XML jsou normalizované hodnoty atribut XML, které obsahují znaky na konci řádku (carriage return a line feed).To znamená všechny konce řádků v externí analyzovanou subjekty (včetně entita dokumentu) jsou normalizované na vstupu překládáním #xA #xD pořadí dvou znaků i všechny #xD, které není následovaný #xA k #xA jeden znak.

Aplikace používající atributy dopravy řetězec hodnoty, které obsahují znaky konce řádku neobdržíte tyto znaky zpět, jako jsou doručeny.Chcete-li se vyhnout proces normalizace, použijte alfanumerické znakové entity XML ke kódování všechny znaky na konci řádku.

Low (Nízká)

sloupec Vlastnosti ROWGUIDCOL a IDENTITY lze nesprávně pojmenovat jako omezení.Příklad výraz CREATE TABLE T (C1 int CONSTRAINT MyConstraint IDENTITY) spustí, ale název omezení není zachováno a není přístupný pro uživatele.

Vlastnosti sloupců ROWGUIDCOL a IDENTITY nemůže mít název jako omezení.Je vrácena chyba 156.

Low (Nízká)

Aktualizace sloupců například pomocí obousměrný přiřazení UPDATE T1 SET @v = column_name = <expression> vzhledem k tomu živé hodnotu proměnné lze v jiných klauzule jako WHERE a v klauzuli během provádění výraz namísto výraz počáteční hodnota, může způsobit neočekávaný výsledky. To může způsobit, že význam predikáty nestandardně změnit na základě jednotlivých řádků.

Toto chování je použitelná pouze v případě, že úroveň kompatibility nastavena na hodnotu 90.

Aktualizace sloupců pomocí obousměrný přiřazení vytvoří očekávané výsledky, protože během provádění výraz je přístupná pouze výraz počáteční hodnota sloupec.

Low (Nízká)

Přiřazení proměnné v výraz obsahující nejvyšší úroveň operátor UNION je povolen, ale vrátí neočekávané výsledky.Například v následující příkazy lokální proměnná @v je přiřazena hodnota sloupec EmployeeID od sjednocení dvou tabulek. Podle definice Pokud výraz SELECT vrací více než jednu hodnotu proměnné přiřazeno poslední hodnota, která je vrácena.V tomto případě poslední hodnota správně přiřazen proměnné však sada výsledků dotazu dotazu výraz SELECT UNION je také vrácena.

ALTER DATABASE AdventureWorks
SET compatibility_level = 90;
GO
USE AdventureWorks;
GO
DECLARE @v int;
SELECT @v = EmployeeID FROM HumanResources.Employee
UNION ALL
SELECT @v = EmployeeID FROM HumanResources.EmployeeAddress;
SELECT @v;

Přiřazení proměnné není povolena v výraz obsahující nejvyšší úroveň operátor UNION.Je vrácena chyba 10734.

Chcete-li vyřešit chyby, přepište dotaz jak je znázorněno v následujícím příkladu.

DECLARE @v int;
SELECT @v = EmployeeID FROM 
    (SELECT EmployeeID FROM HumanResources.Employee
     UNION ALL
     SELECT EmployeeID FROM HumanResources.EmployeeAddress) AS Test
SELECT @v;

Low (Nízká)

Funkce ODBC {fn CONVERT()} používá výchozí datový formát jazyka.Výchozí formát pro některé jazyky je YDM, což může mít za následek chyby při konverzi CONVERT() je-li spojeno s jiné funkce, například {fn CURDATE()}, který očekává formát RMD.

Funkce ODBC {fn CONVERT()} používá styl 121 (RMD formát nezávislý na jazyce) při převodu dat ODBC typy SQL_TIMESTAMP, SQL_DATE, SQL_TIME, SQLDATE, SQL_TYPE_TIME a SQL_TYPE_TIMESTAMP.

Low (Nízká)

Funkce ODBC {fn CURDATE()} vrací pouze datum ve formátu "Rrrr MM-DD".

Vrátí funkce ODBC {fn CURDATE()} i datum a čas, například "rrrr MM-DD hh: mm: ss.

Low (Nízká)

Intrinsics data a času, jako je například části řetězce DATEPART nevyžadují řetězec vstupní hodnoty měly být platné datum a čas literály.Části řetězce například SELECT DATEPART (rok, "2007, 05-30") zkompiluje úspěšně.

Intrinsics data a času, jako je například části řetězce DATEPART vyžadují vstupní hodnoty řetězce za literály platné datum a čas.Při použití neplatné argumentu datum_čas literálu, je vrácena chyba 241.

Low (Nízká)

Vyhrazená klíčová slova

Nastavení kompatibility také určuje klíčová slova, která jsou vyhrazena společností Database Engine. Následující tabulka uvádí vyhrazená klíčová slova, která jsou zavedeny každou úrovně kompatibility.

Úroveň kompatibility nastavení

Vyhrazená klíčová slova

100

KUMULATIVNÍ AKTUALIZACE datová krychle, SLOUČENÍ,

90

EXTERNÍ, KONTINGENČNÍ TABULKY, UNPIVOT, POKUD BYSTE SE CHTĚLI VRÁTIT, TABLESAMPLE

80

MOŽNOST KOMPLETOVÁNÍ, FUNKCE, OPENXML

Na úroveň dané kompatibility vyhrazená klíčová slova zahrnout všechna klíčová slova, zavádí na nebo pod touto úroveň.Tedy například aplikacemi na úroveň 100, všech uvedených v předchozí tabulce klíčových slov jsou vyhrazeny.Na nižších úrovních kompatibility klíčová slova úroveň 100 zůstanou názvy platný objekt, ale funkce jazyka úroveň 100, odpovídající těchto klíčových slov nejsou k dispozici.

Po zavedení zůstane vyhrazené klíčové slovo.Například vyhrazené klíčové slovo OPENXML, který byl zaveden v úroveň kompatibility 80, je vyhrazen také v úrovních 90 a 100.

Je-li aplikace používá identifikátor, který je vyhrazen jako klíčové slovo pro jeho úroveň kompatibility, aplikace se nezdaří.To work around this, enclose the identifier between either brackets ([]) or quotation marks (""); for example, to upgrade an application that uses the identifier EXTERNAL to compatibility level 90, you could change the identifier to either [EXTERNAL] or "EXTERNAL".

Další informace naleznete v tématuVyhrazená klíčová slova (Transact-SQL).

Vyžaduje oprávnění ALTER v databázi.

A.Změna úroveň kompatibility

The following example changes the compatibility level of the AdventureWorks database to 90,SQL Server 2005.

ALTER DATABASE AdventureWorks
SET COMPATIBILITY_LEVEL = 90;
GO

B.Účinek úroveň kompatibility na order (scénáře 1)

Následující příklad ukazuje rozdíl ve vazbě order 80 a úrovně kompatibility 100.V příkladu vytvoří tabulka vzorku, SampleTableV seznamu tempdb Databáze.

USE tempdb;
CREATE TABLE SampleTable(c1 int, c2 int);
GO

Úroveň kompatibility 90 a vyšší, je výchozí úroveň, následující SELECT... ORDER BY statement produces an error because the column alias in the AS clause, c1, is ambiguous.

SELECT c1, c2 AS c1
FROM SampleTable
ORDER BY c1;
GO

Po obnovení databáze na úroveň kompatibility 80, stejné SELECT... ORDER BY statement succeeds.

ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 80;
GO
SELECT c1, c2 AS c1
FROM SampleTable
ORDER BY c1;
GO

Následující SELECT... ORDER BY statement works in both compatibility levels because an unambiguous alias is specified in the AS clause.

ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 100;
GO
SELECT c1, c2 AS c3
FROM SampleTable
ORDER BY c1;
GO

ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 80;
GO
SELECT c1, c2 AS c3
FROM SampleTable
ORDER BY c1;
GO

C:\.Účinek úroveň kompatibility na order (scénáře 2)

Na úroveň kompatibility 90 a vyšší výchozí úroveň, následující SELECT...ORDER BY výraz vytváří chybu, protože alias sloupec uvedené v klauzule ORDER by obsahuje předponu tabulka.

SELECT c1 AS x
FROM SampleTable
ORDER BY SampleTable.x;
GO

Po databáze nastaven na úroveň kompatibility 80, stejné SELECT...ORDER BY výraz úspěšně.

ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 80;
GO
SELECT c1 AS x
FROM SampleTable
ORDER BY SampleTable.x;
GO

Následující SELECT...ORDER BY výraz funguje v obou úrovně kompatibility protože předponu tabulka je odebrán z alias sloupec uvedené v klauzule ORDER by.

ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 100;
GO
SELECT c1 AS x
FROM SampleTable
ORDER BY x;
GO
ALTER DATABASE tempdb
SET COMPATIBILITY_LEVEL = 80;
GO
SELECT c1 AS x
FROM SampleTable
ORDER BY x;
GO

Aktualizovaný obsah

Opraví chování výraz XACT_ABORT na požádání uvnitř aktivační události.Nastavení XACT_ABORT na OFF v aktivační událost je ignorován v 80 úroveň kompatibility a je povolena úroveň kompatibility 90 a vyšší.Předchozí dokumentaci vrátit tyto informace.

Byl tento obsah pro vás užitečný?
(Zbývající počet znaků: 1500)
Děkujeme za váš názor.
Zobrazit:
© 2014 Microsoft