存储过程内连接

时间:2012-08-20 12:53:58

标签: sql-server stored-procedures

我的第一个存储过程(在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。*但我想我必须检索所有字段?。

由于

2 个答案:

答案 0 :(得分: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

答案 1 :(得分:1)

取出(Nolock),如果需要,可将其放在表名后面。

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