2016-04-07 12 views
18

chcę użyć funkcji JSON w SQL Server 2016, ale gdy próbuję wykonać OPENJSON funkcji, pojawia się następujący błąd:OPENJSON nie działa w SQL Server?

Msg 208, Level 16, State 1, Line 1
Invalid object name 'openjson'.

Dlaczego to nie działa? Mam wersję RC serwera SQL Server 2016.

+1

możesz pisać cały SQL? –

+1

także wybierz @@ info o wersji pomoże – TheGameiswar

Odpowiedz

55

Czy możesz sprawdzić poziom zgodności w bazie danych? OPENJSON jest dostępna pod poziom zgodności 130. Można spróbować wykonać:

ALTER DATABASE database_name SET COMPATIBILITY_LEVEL = 130 

Ponadto, jeśli używasz JSON na Azure SQL Database, trzeba pamiętać, że nawet nowe bazy danych są tworzone na podstawie 120 poziom zgodności więc należy go zmienić, jeśli chcesz użyć OPENJSON. Ponadto, jeśli używasz go w Bazie danych Azure SQL, uruchom zaznacz opcję @@ version, aby zobaczyć, czy jest to serwer V12. Powinieneś zobaczyć coś takiego:

Microsoft SQL Azure (RTM) - 12.0.2000.8 Mar 25 2016 15:11:30 Copyright (c) Microsoft Corporation

Jeśli widzisz jakąś mniejszą wersję (np 11.xxx) prawdopodobnie masz bazę danych na starej architektury gdzie JSON nie jest obsługiwany.

Pozdrawiam,

Jovan

+0

Dzięki Jovan, było to spowodowane poziomem kompatybilności. Działa z 130. – Iva

+0

Teraz mój błąd to "Prawidłowe wartości poziomu zgodności bazy danych to 90, 100 lub 110". –

+0

Czy mówisz o Azure SQL Database lub jakiejś wersji SQL Server? Usługa Azure SQL powinna mieć dostępne wszystkie poziomy zgodności. –