here's one idea: modify the trigger to also use CONTEXT_INFO as the update criteria
ALTER TRIGGER [dbo].[tuReferral_UpdateAudit]
ON [dbo].[tReferral]
FOR UPDATE
AS
-- Select the context information
DECLARE @sess VARBINARY(128), @var NVARCHAR(64)
SET @sess = (SELECT context_info FROM master.dbo.sysprocesses
WHERE spid = @@spid)
SET @var = ISNULL(CAST(@sess AS NVARCHAR(64)),'')
-- Keep Audit "Update" audit columns current (reflect data changes) for table: tReferral
UPDATEtbl
SET
tbl.UpdateLogin= SUSER_SNAME()
,tbl.UpdateApp= SUBSTRING(APP_NAME(),1,64)
,tbl.UpdateDateTime= CURRENT_TIMESTAMP
FROMdbo.tReferral tbl
JOIN (SELECT *,CHECKSUM(*) AS CSUM FROM inserted) i
ON tbl.ReferralID = i.ReferralID
JOIN (SELECT *,CHECKSUM(*) AS CSUM FROM deleted) d
ON i.ReferralID = d.ReferralID
WHEREi.CSUM != d.CSUM
AND SUSER_SNAME() NOT IN ('sa','PKX\prodsqlsvc')
and @var <> 'SKIPME'
then in your stored procedure, you do this:
Create Procedure MyProc
AS
BEGIN
DECLARE @var VARBINARY(128)
SET @var = CAST(N'SKIPME' AS VARBINARY(128))
SET CONTEXT_INFO @var
--do stuff
--disable the work around
SET @var = CAST(N'' AS VARBINARY(128))
SET CONTEXT_INFO @var
END --PROC
the advantage of that is it is a per session variable,and not global like a row in a table would be.
Lowell