Din procedura de executie. Vezi ca ea face exec sp_executesql intr-un bloc try-catch. Orice eroare prinsa acolo este inserata in table de rezultate. Daca tu ai o eroare de syntaxa (102) singurul loc unde aceasta eroare poate sa se intimple este in textul SQL care se executa cu sp_executesql. Daca eroarea de syntaxa ar fi oricunde altundeva, cu o erorare de syntaxa in usp_AsyncExeActivated procedura nici nu ar putea fi creata.
Ca sa faci debugging-ul mai usor poti incerca urmatoarea varianta: desactiveaza Activation cu ALTER QUEUE ... WITH ACTIVATION (STATUS = OFF); In felul acesta cind trimiti un mesaj, doar ramine in queue si nu este procesat. Dupa ce apelezi procedura de invocare, poti rula 'manual' procedura activata (pur si simplu exec usp_AsyncExecActivated) din Management Studio si poti face step-by-step execution ca sa te prinzi ce nu merge. Sau poti adauga PRINT-uri si sa vezi ce executi. Dar fii foarte atent sa le scoti toate PRINT-urile adaugate innainte de a re-activa activation. Pentru ca in contexul de Activation nu exista un 'client' connectat la care sa se trimita textul din PRINT atunci acesta este trimis in ERRORLOG si-tzi va umple errorlog-ul. Odata ce ai rezolvat problema, poti seta la loc Activation cu ALTER QUEUE [AsyncExecQueue] WITH ACTIVATION (STATUS = ON);
http://rusanu.com