0

我的第一个存储过程(在 sql-server 中)。我无法使其工作,它在 a.Id 中引发警告阅读后,并不太了解,我什至不确定是否可以在存储过程中使用此内部联接。

select top 1 b.*, a.*
FROM Bids b
INNER JOIN Auctions a 
ON b.Auction_Id = a.Id
(NOLOCK) WHERE ( a.Ends IS NOT NULL AND a.Starts IS NOT NULL AND a.Starts < @Now AND a.Ends > @Now)
ORDER BY b.CreationTime DESC

实际上,我只需要 b.* 但我假设我必须检索所有字段?

谢谢

4

2 回答 2

1

将锁定提示更改为:

INNER JOIN Auctions a WITH(NOLOCK)

完整查询将是:

select top 1 b.*, a.*
FROM Bids b
     JOIN Auctions a WITH(NOLOCK) ON b.Auction_Id = a.Id
WHERE ( a.Ends IS NOT NULL
    AND a.Starts IS NOT NULL
    AND a.Starts < @Now
    AND a.Ends > @Now)
ORDER BY b.CreationTime DESC
于 2012-08-20T12:56:33.940 回答
1

如果需要,取出(Nolock)或放在表名之后。

您可以使用Select从查询中的任何表中选择所需的任何字段。

于 2012-08-20T12:57:26.567 回答