A szint használati kompatibilitás módosítja adatbázis (-SQL)

Megváltoztatása a kompatibilitási szintet, miközben a felhasználók csatlakoznak az adatbázisban, ez vezethet a kialakulásához téves eredmény határozza meg az aktív lekérdezések. Például, ha a kompatibilitási szint változása fordítása közben a lekérdezési terv összeállított terv alapja lehet a régi és az új kompatibilitási szintet, ami azt eredményezi, hogy helytelen terv és potenciálisan pontatlan eredményeket. Sőt, a probléma még bonyolultabb lett, ha a terv kerül a tervben cache, és újra a további kéréseket. Kérésekre adott hibás eredményeket, akkor javasoljuk, hogy használja az alábbi eljárással módosíthatja az adatbázis kompatibilitási szintet.

Tedd az adatbázis egyfelhasználós módot ALTER DATABASE SET SINGLE_USER utasításokat.

Ha az adatbázis kompatibilitási szintet.

Tedd az adatbázis többfelhasználós hozzáférést módot ALTER DATABASE SET MULTI_USER utasításokat.

További információkért a telepített üzemmódok adatokat lásd. § ALTER DATABASE (-SQL).

Amikor egy tárolt eljárást használja az aktuális adatbázis kompatibilitási szintet, amelyben meghatározzuk. Amikor konfigurálja az adatbázis kompatibilitás is változik, az összes tárolt eljárások az adatbázis automatikusan recompiled kell.

Ez a fejezet az új funkciók a viselkedés okozza az Advent a kompatibilitási szintet 120.

a kompatibilitási szintet 110 és alább

Kompatibilitási szintjének beállítása 120

Egy régi optimalizáló.

Ha a kompatibilitási szint kevesebb, mint 120, ha átalakítjuk a értéknappal a string paraméter nyelv figyelmen kívül hagyja. Megjegyzendő, hogy ez a viselkedés csak arra az adott típusú dátumot. Például, a következő lekérdezést figyelmen kívül hagyja utasításokat Nyelv, kivéve, ha végző szint 120 kompatibilitás.

nyelvi beállítás nem veszik figyelembe, amikor a konvertáló értéket egy string dátum.

Rekurzív linkeket a jobb oldalon ajánlatok KIVÉVE létre egy végtelen ciklus. A következő példa szemlélteti ezt a helyzetet.

A kompatibilitás szintjén 110 alapértelmezett stílus mindig egy értéket a CAST és CONVERT műveletek adattípusok és idő datetime2 121. Ha a kérelem alapján a korábbi viselkedés, akkor használja a kompatibilitási szint kevesebb, mint 110, vagy kifejezetten határozza stílusát az érintett lekérdezés 0.

Az adatbázis frissítése a kompatibilitási szintet 110 nem eredményez változást a felhasználói adatokat tárolunk a lemezen. Ezeket az adatokat megfelelően helyesbíteni kell kézzel. Például ha egy ajánlatot SELECT INTO létrehozni egy táblázatot alapuló forrás, amely a véleménynyilvánítás számított oszlop A fent ismertetett adatok azt tartani (stílus 0) helyett meghatározására számított oszlop is. Ez lenne szükség, hogy manuálisan frissíteni az adatokat megfelelően a stílus 121.

Bármilyen típusú smalldatetime oszlopok hagyni táblázatokat. megjelenő particionált érdekében, míg a típusú datetime. A megfelelő oszlopai helyi táblák (oszlopok, elfoglal azonos sorrendi pozíció a select listában) típusúnak kell lennie datetime.

Bármilyen típusú smalldatetime oszlopok hagyni táblázatokat. megjelenő particionált érdekében, míg a típusú smalldatetime. A megfelelő oszlopai helyi táblák (oszlopok, elfoglal azonos sorrendi pozíció a select listában) típusúnak kell lennie smalldatetime.

Frissítése után kompatibilitási réteg 110 szakad elosztott metszeti ábrázolása egy adat típus hibás. Ezt a problémát meg lehet oldani az adatok megváltoztatása típus egy távoli asztal egy datetime vagy szintjének meghatározása a helyi kompatibilitási adatbázis 100 vagy annál alacsonyabb.

Soundex funkciót valósít meg a következő szabályokat.

H és W nagybetűk figyelmen kívül hagyja, ha megosztják két mássalhangzó, amelyek ugyanazt a számot Soundex kódot.

Ha az első 2 character_expression szimbólum jelentése azonos számot a Soundex kódot tartalmazza mindkét karakter. Ellenkező esetben, ha a sor egymást követő mássalhangzók a Soundex kód ugyanazt a számot, ki vannak zárva, kivéve az első karaktert.

Soundex funkciót valósít meg a következő szabályokat.

Ha a betűk (nagybetűs) H vagy W részesedése két mássalhangzó, amelyek ugyanazt a számot Soundex kód szerint írni, ami a jobb oldalon, figyelmen kívül hagyja.

Ha a beállított szekvenciája szerint ugyanazt a számot a Soundex kódot, akkor minden ki van zárva, kivéve az első karaktert.

Soundex funkciót valósít meg további szabályokat, amelyek alkalmazása az értékek kiszámított függvény lehet eltérő értékeket számoltuk meg különböző szintű kompatibilitás. Frissítés után a kompatibilitási szintet 110, akkor lehet, hogy újjáépítsék az indexek, halmok, vagy a CHECK megszorítások, amelyek használata Soundex funkciót. További információért lásd. Szakaszban Soundex (-SQL).

A speciális tulajdonságok Xsi: nulla, és xsi: type nem végezhet lekérdezéseket, vagy módosíthatja azokat a DML utasítások.

Ez azt jelenti, hogy ez a kifejezés / e / @ xsi: nil nem sikerül, annak ellenére, hogy a javaslat / e / @ * xsi attribútumok: nulla és xsi: type kimarad. Ugyanakkor a javaslat / e visszatér attribútumok xsi: nil és xsi: type való összhang SELECT xmlCol utasítást. még ha az xsi: nil = "false".

Különleges tulajdonságok xsi: nil és xsi: type attribútum tárolja a szokásos módon, és ők is végre lekérdezések és módosítja azokat.

Például, a végrehajtás SELECT x.query lekérdezés (a / b / @ * ') visszaadja az összes attribútumot, beleértve az xsi: nil és xsi: type. Annak érdekében, hogy megszüntesse az ilyen típusú kérés, cserélje ki a mondat @ * Az ajánlat @ * [namespace-uri (.)! = "Beírása xsi névtér URI", és nem (helyi név (.) = "Type" vagy helyi név (.) = „nulla”.

A felhasználó által definiált függvény, amely átalakítja az XML string állandók típusát SQL Server datetime, megjelölve determinisztikus.

A felhasználó által definiált függvény, amely átalakítja az XML string állandók típusát SQL Server datetime, megjelölve, nem determinisztikus.

Ötvözi XML és listatípusba nem támogatja teljes mértékben.

Egyesület és listatípusok teljes mértékben támogatott, többek között a következő funkciókat.

Listája atomi típusok

Validation paraméterek, szükséges XQuery eljárás sikertelen, ha az eljárás tartalmazza az ábrázolás vagy belső asztal értékű függvény.

Validation paraméterek, szükséges XQuery eljárást végezzük, ha az eljárás tartalmazza az ábrázolás vagy belső asztal értékű függvény. Ha a SET módszer helytelen, ha hiba történik.

Az XML-tulajdonságadato- tartalmazó sor karaktereket (kocsi vissza és soremelés) nem normalizált szerint az XML szabványnak. Így, visszatérő a két szimbólum egy helyett soremelés karakter.

Az XML-tulajdonságadato- tartalmazó sor karaktereket (kocsi vissza és soremelés) normalizált szerint az XML szabványnak. Így, az összes karaktert a string end elemzett külső szervezetek (beleértve a dokumentumot egység), normalizálva a bemeneti, átalakítja a két jelből álló sorozatot #xD #xA #xD és szimbólumokat, amelyet nem követ a szimbólum #xA, egyetlen karakter #xA.

Használó alkalmazások attribútumokat átadása húr értékek, a húr vége karaktereket tartalmazó nem kapnak ezek a jelek vissza a formában, amelyben azokat továbbították. Hogy megakadályozzák a végrehajtását a normalizálás folyamata, a numerikus XML entitások karakterek kódolására minden sor vége karakter.

Oszlop tulajdonságai ROWGUIDCOL és azonosság helytelenül címkézett következőképpen korlátai. Például, az az állítás CREATE TABLE T (C1 int CONSTRAINT MyConstraint IDENTITY) végezzük, de a korlátozás nevet nem tárolja, és nem áll rendelkezésre a felhasználó számára.

Oszlop tulajdonságai ROWGUIDCOL és identitás nem lehet nevezni korlátozás. Visszatér hiba 156.

Frissítése oszlop kettős hozzárendelés mint például UPDATE T1 SET @v = oszlop_neve = . vezethet váratlan eredmények, mint az aktív változó értéke lehet használni más olyan javaslatokat, mint hogy hol és, közben utasítások végrehajtása helyett a kezdeti érték az utasítást. Ez lehet az oka annak, hogy az állítmány értékeket fog változni kiszámíthatatlan módon való átmenet során sorról sorra.

Ez a viselkedés csak akkor alkalmazható, ha a kompatibilitás szintjén 90.

Frissítés oszlopon kettős megbízás termel várt eredmény, hisz az az utasítás végrehajtása bekövetkezik hozzáférés csak a kezdeti érték oszlop az utasítás.

Ha értéket kell engedni a kézikönyvet, amely tartalmazza egy felső szintű UNION operátor, de visszatér váratlan eredmények. Például, a következő utasítások helyi változó hozzárendelve @v BusinessEntityID oszlop értéke a kombinálásával a két táblázat. Ha a SELECT vissza több mint egy érték, a változó kap az utolsó érték vissza. Ebben az esetben a változó kap az utolsó értéket rendesen, de ott is a visszatérés az eredmény meg SELECT UNION nyilatkozatot.