Hoe te om het Niveau van de Verenigbaarheid voor SQL Server te bepalen het Gegevensbestand van 2008 of van 2005
Wanneer het selecteren van gegevens of het uitvoeren van vraag over de Server 2008 van Microosft SQL of SQL het gegevensbestand van de Server 2005, kan de volgende foutenmelding of de mislukking zijn teruggekeerd:
[Microsoft] [de Bestuurder van de Server van ODBC SQL] [SQL Server] [Msg 4147, Niveau 15, Staat 1, Lijn 4] Niet-ANSI van het vraaggebruik buiten sluit zich aan bij exploitanten (“ *=“ of „=*“). Om deze vraag zonder wijziging in werking te stellen, te bepalen gelieve het verenigbaarheidsniveau voor huidig gegevensbestand aan 80, gebruikend de VASTGESTELDE optie COMPATIBILITY_LEVEL van ALTER GEGEVENSBESTAND. Het wordt sterk geadviseerd om de vraag te herschrijven gebruikend buiten ANSI aansluit zich bij exploitanten (LINKER BUITEN TREEDT toe, JUISTE TREEDT BUITEN toe). In de toekomstige versies
van SQL Server, sluit aan niet-ANSI zich bij exploitanten niet zal gesteund worden zelfs op achteruit-verenigbaarheidswijzen.
of,
Msg 4147, Niveau 15, Staat 1, Lijn 3
Niet-ANSI van het vraaggebruik buiten sluit zich aan bij exploitanten (“ *=“ of „=*“). Om deze vraag zonder wijziging in werking te stellen, bepaal gelieve het verenigbaarheidsniveau voor huidig gegevensbestand aan 80 of te verminderen, gebruikend opgeslagen procedure sp_dbcmptlevel. Het wordt sterk geadviseerd om de vraag te herschrijven gebruikend buiten ANSI aansluit zich bij exploitanten (LINKER BUITEN TREEDT toe, JUISTE TREEDT BUITEN toe). In de toekomstige versies van SQL Server, sluit aan niet-ANSI zich bij exploitanten niet zal gesteund worden zelfs op achteruit-verenigbaarheidswijzen.
De fout gebeurt omdat Microsoft steun heeft gelaten vallen voor en geëlimineerden ouderwetse *= en =* buiten sluit zich aan bij exploitanten.
om de SQL fout van de Server te bevestigen hierboven moet de beheerder van OB het niveau van de gegevensbestandverenigbaarheid aan 80 bepalen, welk equivalent met SQL Server 2000 als tijdelijke alternerende actie. Natuurlijk, de beste oplossing is de SQL verklaringen of vragen te wijzigen sluit aan de code zich om ouderwets te verwijderen bij exploitanten met huidige standaardSQL aansluit zich bij syntaxis.
Bijvoorbeeld, SQL is de vraag hieronder ongeldig:
SELECTEER o.name VAN sys.objects o, sys.views v WAAR o.object_id *= v.object_id;
En met de volgende code zou moeten worden vervangen:
SELECTEER o.name VAN VERLATEN sys.objects o AANSLUITEN zich bij sys.views v OP o.object_id = v.object_id;
Of volgende afgekorte binnen sluit zich aan bij verklaring:
SELECTEER o.name VAN sys.objects o, sys.views v WAAR o.object_id = v.object_id;
Voor beheerder die niet de code kan veranderen, moet de gemakkelijkste alternerende actie het verenigbaarheidsniveau van het gegevensbestand terugkeren te verstrekken de achterwaartse verenigbaarheid aan ouderwets toetreedt. sp_dbcmptlevel kunnen de opgeslagen (afgekeurde) procedures of af:handelen-SQL worden gebruikt om bepaald (gedeeltelijk, niet allen) gegevensbestandgedrag compatibel te plaatsen om met de vroegere versie van SQL Server te zijn. Dit Msdn- artikel verstrekt overzicht op welk gedrag op elk verenigbaarheidsniveau zijn veranderd.
De versie van SQL Server die kan zijn teruggekeerd aan kan één van het volgende zijn:
60 = SQL Server 6.0
65 = SQL Server 6.5
70 = SQL Server 7.0
80 = SQL Server 2000
90 = SQL Server 2005
100 = SQL Server 2008
Nota: Niveau van de verenigbaarheid 60, 65, en 70 niet meer beschikbaar in SQL Server 2008. En de toekomstige versie van SQL Server zal (2) vroegere versie slechts twee van achterwaartse verenigbaarheid steunen. Een gegevensbestand dat een geïndexeerde= mening bevat kan niet op een verenigbaarheidsniveau worden veranderd lager dan 80. Nemen ook nota dat wanneer een gegevensbestand aan achteruit-verenigbaarheidswijze wordt geplaatst, enkele nieuwe functionaliteit, zoals SQL CLR steun en diagrammen SSMS voor het gegevensbestand kan worden verloren. Naast, beïnvloedt de verenigbaarheidswijze gedrag slechts voor het gespecificeerde gegevensbestand, niet voor de volledige server.
Stappen om het Niveau van de Verenigbaarheid van een Gegevensbestand in SQL Server te veranderen en te bepalen
De volgende SQL bevelen kunnen in SQL het venster van de Vraag van de Studio van het Beheer van de Server worden uitgegeven. Herinner me uit te voeren gaan na elk bevel.
- Facultatief: Plaats het gegevensbestand aan de enige wijze van de gebruikerstoegang:
VERANDER GEGEVENSBESTAND DATABASE_NAME PLAATSEN SINGLE_USER; - Bepaal het niveau van de gegevensbestandverenigbaarheid aan één van de vroegere hierboven verklaarde versie:
Methode af:handelen-SQL
VERANDER GEGEVENSBESTAND DATABASE_NAME PLAATSEN COMPATIBILITY_LEVEL = {80 | 90 | 100}Bijvoorbeeld,
VERANDER VASTGESTELD GEGEVENSBESTAND MY_DB COMPATIBILITY_LEVEL = 80
sp_dbcmptlevel de Opgeslagen Methode van de Procedure
EXEC sp_dbcmptlevel database_name, compatibility_level waarde;Bijvoorbeeld,
EXEC sp_dbcmptlevel my_db, 90;
- Facultatief: Zet het gegevensbestand op toegangswijze voor meerdere gebruikers terug:
VERANDER GEGEVENSBESTAND DATABASE_NAME PLAATSEN MULTI_USER;
BELANGRIJK: De pagina is door computer vertaald en verstrekt „zoals“ zonder garantie is. De automatische vertaling kan moeilijk zijn te begrijpen. Gelieve te verwijzen naar oorspronkelijk Engels artikel waar mogelijk.
Verwante Artikelen
- Desinstalleer en verwijder de Veelvoudige Instanties van het Gegevensbestand van de Server 2005 van Microsoft SQL
- Microsoft DreamSpack biedt Vrije Download en Vergunning van Visuele Studio 2008, Server 2003, SQL Server 2005 en meer aan
- De Update van de download voor Vensters 7 en Server 2008 R2 Bèta (KB967062) om de Gemeenschappelijke Kwestie van de Verenigbaarheid van de Toepassing te bevestigen
- Optimaliseer SQL Server 2000, 2005 of 2008 in het Grote Systeem van de RAM door Pagina's in Geheugen en ONTZAG Te sluiten
- De Verenigbaarheid van het Systeem van de controle via Toolkit van de Verenigbaarheid van de Toepassing van Microsoft Nieuwe Versie 5.5
- Hoe te om Geplande Files voor SQL Server 2005 uit te voeren druk uit
- De fout is terwijl het Vestigen van een Verbinding aan SQL Server 2005 voorgekomen die geen Lokale en Verre Verbindingen toestaat
- Kostenloos Beschikbare Download van de Server 2005 van Microsoft de Virtuele R2
- Het Wachtwoord van de Gebruiker van het Gegevensbestand van Oracle van de verandering
- SP1 van de Server 2005 van Microsoft de Virtuele R2 (de Uitgave van de Onderneming) Directe Verbindingen van de Download










































14 augustus, het 03:17 van 2009
[...] 7) Mijn Digitaal Leven. Hoe te om het Niveau van de Verenigbaarheid voor SQL Server te bepalen het Gegevensbestand van 2008 of van 2005. http://www.mydigitallife.info/2009/05/17/how-to-set-compatibility-level-for-sql-server-2008-or-2005-.. [...]