SQL Server 数据库技术之:用触发器实现用户登录记录下登录信息(sysprocesses)
作者:本站原创转载自:xin3721网络学院更新时间:2010/10/19

如果你非要用触发器,不妨看看select * from sysprocesses的内容。可以给sysprocesses表加个触发器来完成你的要求。如果你用7.0,可以看看Microsoft提供的sp_who的过程!如下:
create procedure sp_who  --- 1995/11/28 15:48
       @loginame sysname = NULL --or 'active'
as

declare     @spidlow    int,
         @spidhigh    int,
         @spid        int,
         @sid        varbinary(85)

select     @spidlow    =     0
        ,@spidhigh    = 32767


if (    @loginame is not NULL
   AND    upper(@loginame) = 'ACTIVE'
   )
    begin

    select spid ,status
              ,loginame=rtrim(loginame)
          ,hostname ,blk=convert(char(5),blocked)
          ,dbname= db_name(dbid),cmd
    from  master.dbo.sysprocesses
    where spid >= @spidlow and spid <= @spidhigh AND
          upper(cmd) <> 'AWAITING COMMAND'

    return (0)
    end

if (@loginame is not NULL
   AND    upper(@loginame) <> 'ACTIVE'
   )
begin
    if (@loginame like '[0-9]%')    -- is a spid.
    begin
        select @spid = convert(int, @loginame)
        select spid, status,
               loginame=rtrim(loginame),
               hostname,blk = convert(char(5),blocked),
               dbname=db_name(dbid),
               cmd
        from  master.dbo.sysprocesses
        where spid = @spid
    end
    else
    begin
        select @sid = suser_sid(@loginame)
        if (@sid is null)
        begin
            raiserror(15007,-1,-1,@loginame)
            return (1)
        end        
        select spid, status,
               loginame=rtrim(loginame),
               hostname ,blk=convert(char(5),blocked),
               dbname=db_name(dbid),
               cmd
        from  master.dbo.sysprocesses
        where sid = @sid
    end
    return (0)
end


/* loginame arg is null */
select spid,
       status,
       loginame=rtrim(loginame),
       hostname,
       blk=convert(char(5),blocked),
       dbname=db_name(dbid),
       cmd
from  master.dbo.sysprocesses
where spid >= @spidlow and spid <= @spidhigh


return (0) -- sp_who

关于我们--广告服务--免责声明--本站帮助-友情链接--版权声明--联系我们     黑ICP备07002182号