Eftersom den här koden ursprungligen användes med utökade lagrade procedurer, låter det som om det är ohanterad kod. Buggar i ohanterad kod kan enkelt krascha din process.
CLR-integration är mycket mer robust än utökade lagrade procedurer, men koden körs fortfarande under processen, så fel kan ta ner eller korrumpera SQL Server. (Som jämförelse, i teorin kommer en SAFE CLR-rutin inte att kunna korrumpera SQL Server även om den kan orsaka problem som minskar din servers tillgänglighet utan att helt ta ner SQL Servern.)
I grund och botten är de enda sätten att inte krascha SQL Server i det här scenariot:
- Undvik att använda funktionen som kraschar.
- Åtgärda buggykoden.
- Kör koden i en separat process (starta en körbar fil, anropa en Windows-tjänst, anropa en webbtjänst, etc.). Du kan skriva en hanterad .NET DLL för att utföra denna interaktion. Troligtvis kommer du fortfarande att behöva ladda det OSÄKERT, men - om det är skrivet på rätt sätt - kan det i verkligheten vara ganska säkert.