sql >> Databasteknik >  >> RDS >> Sqlserver

SQL Server 2008:Hur kraschsäker är en CLR-lagrad procedur som laddar ohanterade bibliotek

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:

  1. Undvik att använda funktionen som kraschar.
  2. Åtgärda buggykoden.
  3. 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.


  1. Hur man lagrar flera alternativ valda av användaren i en tabell

  2. Laravel 4 använder UUID som primärnyckel

  3. Heltextkatalog/indexsökning efter %book%

  4. Vad är det för fel med den här AS3-koden för att kommunicera med en PHP-fil?