我有以下触发器,发生的情况是,当想要检索客户端机器的 IP 时,它需要应用程序服务器的 IP,可以帮助检索该 IP 的人,而不是应用程序服务器的 IP。
ALTER trigger [dbo].[InsertLoginControl]
on [dbo].[Attendance]
for insert
as
declare @noEmpleado varchar(5)
DECLARE @IP_Address varchar(255)
declare @name varchar(50)
declare @pass varchar(50)
declare @LastCon datetime
select top 1 @noEmpleado = EmpNo from Attendance order by idAttendance desc
SELECT @IP_Address =
convert(varchar(20),CONNECTIONPROPERTY('client_net_address'))
select top 1 @name = NameDisplay from Login_empl where
EmployeeNo=@noEmpleado
select top 1 @pass = UserPAss from Login where Emp_Number=@noEmpleado
select top 1 @LastCon=DateLogout from logincontrol where
empNumber=@noEmpleado order by id desc
if exists(select empNumber from LoginControl where empNumber= @noEmpleado)
begin
if(@LastCon is null)
begin
update LoginControl set DateLogout=getdate() where empNumber=@noEmpleado
insert into LoginControl
values(@IP_Address,getdate(),null,@noEmpleado,@name,
ENCRYPTBYPASSPHRASE('BCPPlus2019', @pass))
end
else
begin
insert into LoginControl
values(@IP_Address,getdate(),null,@noEmpleado,@name,
ENCRYPTBYPASSPHRASE('BCPPlus2019', @pass))
end
end
else
begin
insert into LoginControl
values(@IP_Address,getdate(),null,@noEmpleado,@name,
ENCRYPTBYPASSPHRASE('BCPPlus2019', @pass))
end
尝试以下操作以获取执行存储过程或触发器的计算机的 IP 地址。我希望那是你的帮助。