Ideja diezgan vienkārša-
* procedūras izpildes laikā izveidot temp tabulu (šādas tabulas ir redzamas tikai transakcijas ietvaros, līdz ar to- citi lietotāji atšķirību nejutīs.).
create table #NogrieztTrigeri(i int)* trigerī pārbaudīt, vai tempdb eksistē tāda tabula. Ja eksistē tabula, tad neko nedara.
IF OBJECT_ID('tempdb..#NogrieztTrigeri') is Null* procedūras beigās temp tabulu izmet
Begin
-- tas, kas jādara normālā gadījumā
End
drop table #NogrieztTrigeriŠo risinājumu atradu šeit. Nekādu elegantāku risinājumu neizdevās atrast vai izdomāt.
[Papildināts 2011-11-11] Alternatīvas (vienalga nav īsti pārskatāmas) varētu būt:
* izmantot konteksta informāciju (msdn)
* izmantot Resursu bloķēšana- Application Locks
Nav komentāru:
Ierakstīt komentāru