Sql 在没有临时表的情况下记录刚刚选择的内容?

Sql 在没有临时表的情况下记录刚刚选择的内容?,sql,logging,sql-server-2000,Sql,Logging,Sql Server 2000,在存储过程中,我使用传入的变量从表中进行选择。然后,我想记录所选内容。有没有不使用临时表或表变量的方法来实现这一点 select语句: Select userId, firstName, lastName, address from myTable where userName = @userName and password = @password 然后,我想记录所选的用户名、姓氏、姓氏和地址。因此: Insert into loginLog...[results gotten above]

在存储过程中,我使用传入的变量从表中进行选择。然后,我想记录所选内容。有没有不使用临时表或表变量的方法来实现这一点

select语句:

Select userId, firstName, lastName, address
from myTable
where userName = @userName and password = @password
然后,我想记录所选的用户名、姓氏、姓氏和地址。因此:

Insert into loginLog...[results gotten above]

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

使用
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

这正是我输入的答案。嗯,格式可能会有所不同,但仅此而已……我意识到我犯了一个错误,结果可能不止一个。只是我只想在有多个结果的情况下记录它。有鉴于此,您的答案不再有效…然后您将被一个临时表困住。您可能会用SQL跟踪连接一些东西来捕获所需的表选择,但性能影响会令人不快。只需提及,OUTPUT子句在这里会很有用。。。但他们只是在SQL2005中添加了这一点。