Comment déterminer le nom d'un process ayant provoqué l'activation d'un triggersur

Version courte: Est-ce que quelqu'un connaît un moyen – à l'intérieur d'un triggersur SQL 2000 – de détecter quel process a modifié datatables, et de quitter le triggersur si un process particulier est détecté?

Version longue J'ai une routine de synchronisation personnalisée qui déplace datatables entre les schémas de database dis-similaires.

Lorsque ce process récupère un logging modifié de la database A, il doit le transformer en un logging qui entre dans la database B. Les bases de données sont radicalement différentes, mais partagent certaines données comme les counts user et l'activité user. sont structurellement différents).

Lorsque datatables sont modifiées dans l'une des tables pertinentes, un triggersur se triggers et écrit le PK de cet logging dans une table "sync". Cette table "sync" est surveillée par un process (un proc stocké) qui saisira les PK en séquence, et copyra datatables associées de la database A vers la database B, en effectuant les transformations nécessaires.

Les deux bases de données ont des triggersurs qui triggersnt et copynt le PK dans la table de synchronisation, mais ces triggersurs doivent ignorer le process de synchronisation lui-même afin de ne pas entrer dans la boucle "sans fin" (ou less, selon les limites d'imbrication).

Dans SQL 2005 et versions ultérieures, j'utilise le code suivant dans le process de synchronisation pour s'identifier:

  SET CONTEXT_INFO 0xHexValueOfProcName 

Chaque triggersur a le code suivant au début, pour voir si le process qui a modifié datatables est le process de synchronisation lui-même:

  IF (CONTEXT_INFO () = 0xHexValueOfProcName)
 COMMENCER
 - print '## File d'attente de synchronisation de process détectée.  Ce triggersur est en cours de sortie!  ## '
   revenir
 FIN 

Ce système fonctionne très bien, continue à se caler, maintient datatables en synchronisation. Le problème est maintenant qu'un server SQL2000 veut join la fête.

Est-ce que quelqu'un connaît un moyen – à l'intérieur d'un triggersur SQL 2000 – de détecter quel process a modifié datatables, et de quitter le triggersur si un process particulier est détecté?

Merci les gars!

(Selon la request d'Andriy, je réponds à ma propre question.)

Je mets ça en haut de ma gâchette, ça fonctionne comme un charme.

 - Comment vérifier les informations de context dans SQL 2000
 IF ((select CONTEXT_INFO de master..sysprocesses où spid = @@ SPID) = 0xHexValueOfProcName)
 COMMENCER
   print 'Processus de synchronisation détecté - Quitter!'
   revenir
 FIN