2016-09-21 15 views
6

Dzisiaj zainstalowałem wersję 13.0.15800.18 z Microsoft SQL Server Management Studio (SSMS) [2016-09-20, 16.4], a teraz odmawia ona edycji moich procedur przechowywanych. Próbowałem nawet nieco starszej wersji na moim drugim komputerze, żeby się upewnić, i otwierają się dobrze. I pojawia się błąd:SSMS przestał wczytać moje procedury przechowywane po aktualizacji

enter image description here

Script failed for StoredProcedure 'xyz'. (Microsoft.SqlServer.Smo)

Additional information:

Syntax error in TextHeader of StoredProcedure 'xyz'. (Microsoft.SqlServer.Smo)

Niektóre stare posty (1, 2, 3) Online Dyskusja na ten temat jest spowodowany po zagnieżdżone komentarze przed „ALTER procedury” (lub po prostu ogólnie w procedurze gdzieś). W moim przypadku żaden z moich skryptów nie otwiera się po ostatniej aktualizacji SSMS. Ja obejrzałem jeden z moich prostych skryptów na innym komputerze ze starszą wersją SSMS, a jedyny komentarz do całej sprawy jest prosty generowane automatycznie komentarz, który brzmi:

/****** Object: StoredProcedure [dbo].[xyz] Script Date: 9/21/2016 12:55:48 PM ******/

Czy ktoś napotkasz taki problem, po aktualizacja SSMS z 2016-09-20, czy ktoś ma rozwiązanie?

Aktualizacja 1:lhsoftware „s wskazówka (poniżej) z użyciem Tworzenie Aby prac dla otwarcia procedury. Próbowałem zmodyfikować jedną z prostych procedur, aby absolutnie nie komentować, a nadal otrzymuję błąd "script failed" podczas próby Modyfikujit! Sprawdziłem nawet tę procedurę później za pomocą sp_helptext i rzeczywiście nie zawiera ona ukośników (/) ani gwiazdek (*).

Aktualizacja 2: Microsoft oficjalnie anulowane aktualizacji z następującym komunikatem (znaleziono here):

There is a known issue with the SSMS 16.4 release and we have rolled back the download to SSMS 16.3. We will update the download link when the issue has been resolved.

If you have installed SSMS 16.4 and would like to revert to SSMS 16.3, you must uninstall SSMS 16.4 prior to installing SSMS 16.3.

Update 3: Błąd został rozwiązany w wersji 16.4.1 (13.0. 15900,1). Dla mnie zarówno Zmienić i Alter To ponownie działać od czasu zainstalowania 16.4.1.

+1

użyj polecenia sp_helptext i poszukać */w komentarzach. Przeczytaj to: http://www.sqlservercentral.com/Forums/Topic738639-149-1.aspx –

+0

@RicardoC: Właśnie wypróbowałem * sp_helptext * w kilku procedurach, a wiele z nich nie zawiera nic więcej niż kilka liniowych komentarzy z "--". Procedury te nie zawierają żadnego ukośnika (/) ani gwiazdki (*). Niektóre linie komentarza zawierają równe znaki (=) użyte dla estetyki. – Michael

+0

Mam ten sam problem z wczorajszym zainstalowanym SSMS 13.00.15800.18. Na innej maszynie z SSMS 13.0.15700.28 działa dobrze. –

Odpowiedz

1

"Procedura zapisana w skrypcie jako> Utwórz na" będzie działać. I możesz ręcznie zmienić go na Alter. sugestia jhipp również działa.

Uwaga:

„Script procedury przechowywanej jako> Alter Do” powróci ten sam błąd jak „Modyfikuj”

+1

Dzięki za cynk. Próbowałem już * Alter To *, ponieważ używałem tego, aby uniknąć usterki w starej wersji SSMS przy wyborze * Modyfikuj *. * Create To * pozwala mi przynajmniej otworzyć procedury, które choć denerwujące, nadal wykonują zadanie. – Michael

+1

@Michael Jedyna różnica między tymi trzema komendami polega na tym, że pierwsze użycie 'CREATE' i * nie * pozwala na przypadkową modyfikację przechowywanej procedury. Z tego powodu generalnie wolę 'Create To', wprowadzaj zmiany, których potrzebuję i zmieniaj' CREATE' na 'ALTER' dopiero po zakończeniu –

+1

@PanagiotisKanavos: Wiem, co masz na myśli. Mówiąc o niebezpieczeństwie, starsze wersje SSMS wykonałyby dowolny tekst po naciśnięciu klawisza F5. Na przykład, jeśli w procedurze wybrano opcję "DELETE FROM xyz" i naciśnięto klawisz F5, mogą wystąpić złe rzeczy. – Michael

0

Ponadto, zamiast modyfikować SP z SSMS, spróbuj wykonać skrypt skryptowy jako nowe okno zapytań o numer Alter To.

+0

* Alter To * otrzymuje (w zasadzie) ten sam błąd co * Modify *, ale * Create To * działa zgodnie z sugestią * lhsoftware *. – Michael

+0

Dobrze wiedzieć. Dziękuję Ci! –

1

To samo dzieje się ze mną - wygląda na to, że jest to częsty problem z najnowszą aktualizacją.

Ktoś zalogowany błąd na SM, który miał pewne działanie, które można śledzić tutaj: https://connect.microsoft.com/SQLServer/Feedback/Details/3103831

Aktualna Rozwiązaniem jest aktualizacja Narzędzia -> Opcje -> SQL Server Object Explorer -> Obsługa skryptów -> Konwertuj user- zdefiniowane typy danych na typy podstawowe = Prawda, jednak może to mieć pewne niezamierzone konsekwencje.

Aktualnie korzystam z SSMS 2014 w międzyczasie. Mam nadzieję, że szybko dostaną poprawkę (choć nie przepuszczam palców).

+0

Dzięki za znalezienie w raporcie o błędzie. To odkrycie pozwala mi wiedzieć, że to nie tylko ja, i daje moim postom większą wiarygodność. – Michael

+0

Firma Microsoft anulowała aktualizację, tak jak to ujęłam w moim pytaniu. – Michael

+0

Błąd został rozwiązany w wersji 16.4.1. – Michael

2

Microsoft SQL wydała aktualizację (wersja 13.0.15900.1), który rozwiązuje ten problem: (Download SQL Server Management Studio (16.4.1))

Należy pamiętać, że obejście Wersja 13.0.15800.18: Narzędzia -> Opcje -> SQL Server Object Explorer -> Obsługa skryptów -> Konwersja typów danych zdefiniowanych przez użytkownika typów bazowych = true

jest dodanie „EXECUTE AS CALLER” do procedur składowanych i funkcji skalarnych

Po zainstalowaniu wersji: 13.0.15800.18 nawet jeśli odinstalować i zainstaluj starszą wersję (Previous SQL Server Management Studio Releases) problem nadal

Powiązane problemy