2011-01-10 25 views
34

'u kullanarak değişkenleri ayarla SQL Server 2005'te birden çok değişken içeren bir saklı yordamım var ve bu değişkenlerin değerlerini select deyimini kullanarak ayarlamak istiyorum. Üç değişkenin hepsi aynı tablodan gelir ve şu anda aşağıda gösterildiği gibi bir seçim ifadesi kullanarak bunları belirlemenin bir yolu olmalıdır. Lütfen anlamaya yardım et. Mevcut yaklaşım varSQL Stored Procedure, 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 
) 

cevap

66
select @currentTerm = CurrentTerm, @termID = TermID, @endDate = EndDate 
    from table1 
    where IsCurrent = 1 
+0

Ben benzer ifadeler yazılı edilmiştir. Bu ifadeyle yaptığım karşılaştırmada, değişken olarak @currentTerm = CurrentTerm alıyorum ve döndürülen değer NULL. Baska öneri? – srbhattarai

12

bir avantajı birden fazla satır yüklemi tarafından döndürülen eğer bir hata yükseltmek olacaktır. Kullanabileceğinizi çoğaltmak için.

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