I want to get some value in trigger when its start executing. However getting the value using parameter option is not available in trigger. So I decided to store that particular value in one variable and pass it to Context_info
in my stored procedure.
And I am getting that value in my trigger. But still I am getting null value only. But I tried manually by passing parameter to stored procedure, it is executed correctly and Context_info
value is also showing correctly in that stored procedure.
But when I am getting this value in trigger it is showing NULL. And also in sys.dm_exec_sessions
table context_info
value is not getting updated but last_request_start_time
and last_request_end_time
is getting updated.
Can anyone please guide me to find my mistake where I am going wrong?
Here are my stored procedure and trigger:
ALTER PROCEDURE [dbo].[dm_ApptResRecurrReasonRelViewSel]
(@IDLocation int,
@IDApptResource int,
@StartDate datetime,
@IDApptResRecurr int,
@ClientID varchar(50) )
AS
SET NOCOUNT ON;
DECLARE @context_info varbinary(100);
SET @context_info = CAST(@ClientID as varbinary(100));
SET CONTEXT_INFO @context_info;
etc....
Trigger
ALTER TRIGGER [dbo].[xC2C_ADT_Upd]
ON [dbo].[dmAppt]
FOR INSERT, UPDATE
AS
BEGIN
If Not Exists (Select top 1* from inserted)
Return
declare @ADT_ID UniqueIdentifier
declare @personuid int
declare @ApptID int
select @personuid = PID, @ApptID = IDAppt
from inserted
set @ADT_ID = NewID()
declare @MSG_Type varchar(1)
declare @AddDate datetime
declare @LastUpdateDate datetime
declare @ServerID [varchar](50)
declare @ClientDB [varchar](max)
declare @ClientID [varchar](50)
set @ServerID = Convert(varchar(50),CONNECTIONPROPERTY('local_net_address'))
set @ClientDB = db_name()
set @ClientID = CAST(CONTEXT_INFO() as varchar(50))