记录刚刚选择的没有临时表的内容?

时间:2011-06-27 17:36:19

标签: sql logging sql-server-2000

在存储过程中,我使用传入的变量从表中进行选择。然后,我想记录所选的内容。有没有办法在不使用临时表或表变量的情况下执行此操作?

选择语句:

Select userId, firstName, lastName, address
from myTable
where userName = @userName and password = @password

然后,我想记录所选的userId,firstName,lastName和地址。所以:

Insert into loginLog...[results gotten above]

注意:如果只返回一个结果,我只想记录它。如果返回多个结果,我仍然想要选择所有结果,但我不想记录它。

1 个答案:

答案 0 :(得分:2)

使用select填充存储过程中的局部变量。记录结果,然后select变量将它们返回给调用者:

declare
  @userID    int          ,
  @firstName varchar(255) ,
  @lastName  varchar(255) ,
  @address   varchar(255)   ,
  @rows      int

select @userID = userId ,
       @firstName = firstName ,
       @lastName  = lastName  ,
       @address   = address
from myTable
where ...

set @rows = @@rowcount

insert loginLog
select @userID , @firstName , @lastName , @address
where @rows > 0

select userID = @userID ,
       firstName  = @firstName ,
       lastName   = @lastName  ,
       address    = @address
where @rows > 0