Aktualizujemy nasze środowisko testowe o nowy serwer i zaktualizowaną wersję Microsoft SQL Server i napotkaliśmy problem.
Na nowym serwerze nasz stary kod otrzyma „operacja nie jest dozwolona, gdy obiekt jest zamknięty” podczas wykonywania niektórych procedur przechowywanych. Ta wiadomość nigdy nie pojawiła się na starym serwerze. Po wyśledzeniu go problem można rozwiązać, dodając SET NOCOUNT ON;
do procedury składowanej.
Spojrzałem na wartości domyślne w bazie danych i nie zauważyłem innych ustawień (SQL Server 2008 vs. SQL Server 2014) związanych z wartościami domyślnymi.
Na jakie ustawienie powinienem patrzeć, aby rozwiązać ten problem globalnie, bez konieczności dodawania SET NOCOUNT ON
do tysiąca przechowywanych procesów?
SET NOCOUNT ON;
na początku procedury przechowywanej (po BEGIN
). Liczba procedur przechowywanych nie powinna tak naprawdę stanowić problemu.
BEGIN
- jest fajna, ale nie wymagana.
SET NOCOUNT ON;
, zawsze.