Ponieważ ten kod był pierwotnie używany z rozszerzonymi procedurami składowanymi, wygląda na to, że jest to kod niezarządzany. Błędy w niezarządzanym kodzie mogą łatwo spowodować awarię Twojego procesu.
Integracja CLR jest znacznie bardziej niezawodna niż rozszerzone procedury składowane, ale kod nadal działa w procesie, więc błędy mogą spowodować wyłączenie lub uszkodzenie programu SQL Server. (Dla porównania, teoretycznie procedura SAFE CLR nie będzie w stanie uszkodzić SQL Server, chociaż nawet może spowodować problemy, które zmniejszą dostępność serwera bez całkowitego wyłączenia SQL Server.)
Zasadniczo jedynymi sposobami na uniknięcie awarii programu SQL Server w tym scenariuszu są:
- Unikaj używania funkcji, które ulegają awarii.
- Napraw kod błędu.
- Uruchom kod w osobnym procesie (uruchom plik wykonywalny, wywołaj usługę Windows, wywołaj usługę sieciową itp.). Aby wykonać tę interakcję, możesz napisać zarządzaną bibliotekę DLL platformy .NET. Najprawdopodobniej nadal będziesz musiał załadować go NIEBEZPIECZNIE, ale – jeśli jest napisany poprawnie – w rzeczywistości może być całkiem bezpieczny.