日期:2014-05-18  浏览次数:20618 次

急!!用触发器是否可以获得操作用户的IP?
我的MSSQL服务器中的一个表经常掉几条数据,我想用触发器记录操作的数据,请大侠们帮帮忙怎么样获取操作IP和操作的是那条记录?谢谢了

------解决方案--------------------
用存储过程来实现:
create proc sp_get_hostip(@ip varchar(15) output)

AS

declare @cmd varchar(200);
create table #ipTemp(iptext varchar(255));

set @cmd = 'ping -n 1 ' + host_name();

insert #ipTemp exec master..xp_cmdshell @cmd;

select @ip = ISNULL(substring(iptext,(charindex( '[ ',iptext)+1),(charindex( '] ',iptext)-(charindex( '[ ',iptext)+1))), ' ') from #ipTemp where charindex( '[ ',iptext)> 0;

drop table #ipTemp;

if ( @ip <> ' ' )
return 1;
else
return 0;