SQL存储过程使用SELECT设置variables

我在SQL Server 2005中有一个存储过程与多个variables,我想设置这些variables的值使用select语句。 所有三个variables来自同一个表,应该有一种方法来设置它们使用一个select语句,而不是我目前有如下所示。 请帮我弄明白。

DECLARE @currentTerm nvarchar(max) DECLARE @termID int DECLARE @endDate datetime SET @currentTerm = ( Select CurrentTerm from table1 where IsCurrent = 1 ) SET @termID = ( Select TermID from table1 where IsCurrent = 1 ) SET @endDate = ( Select EndDate from table1 where IsCurrent = 1 ) 
 select @currentTerm = CurrentTerm, @termID = TermID, @endDate = EndDate from table1 where IsCurrent = 1 

目前的方法所具有的一个优点是,如果谓词返回多行,将会引发错误。 重现您可以使用。

 SELECT @currentTerm = currentterm, @termID = termid, @endDate = enddate FROM table1 WHERE iscurrent = 1 IF( @@ROWCOUNT <> 1 ) BEGIN RAISERROR ('Unexpected number of matching rows', 16, 1) RETURN END