2016-12-29 60 views
0

我有下面的代碼的問題:選入變量獲取多列

/* Cursor */ 
DECLARE @RelationCursor CURSOR 
SET @RelationCursor = (SELECT [fms].[dbo].[Relation].[RELATIONCODE], [fms].[dbo].[Relation].[COMPANYNAME] INTO @RelationCode, @CompanyName FROM [fms].[dbo].[Relation]) 

OPEN @RelationCursor 
FETCH NEXT FROM @RelationCursor INTO @RelationCode, @CompanyName 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    print(@RelationCode) 
    print(@CompanyName) 

    FETCH NEXT FROM @RelationCursor INTO @RelationCode, @CompanyName 
END 

CLOSE @RelationCursor 

我試圖讓RelationCodeCompanyname@RelationCode@Companyname這樣我就可以在遊標循環中使用它們。但我得到的SELECT查詢時出現錯誤:

消息156,級別15,狀態1,過程spLoadProfits,行21
'變成' 關鍵字附近有語法錯誤。

但查詢似乎完全正常,我似乎無法弄清楚這個問題。有沒有人有如何解決這個問題的想法?

回答

2

遊標名稱不應以@開頭,還需要在完成遊標處理時釋放遊標。

試試這個:

DECLARE @RelationCode int, -- I guessed the data type, change if needed 
     @CompanyName varchar(100) -- I guessed the data type, change if needed 

DECLARE RelationCursor CURSOR FOR 
    SELECT [fms].[dbo].[Relation].[RELATIONCODE], [fms].[dbo].[Relation].[COMPANYNAME] 
    FROM [fms].[dbo].[Relation] 

OPEN RelationCursor 

FETCH NEXT FROM RelationCursor INTO @RelationCode, @CompanyName 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    print(@RelationCode) 
    print(@CompanyName) 

    FETCH NEXT FROM RelationCursor INTO @RelationCode, @CompanyName 
END 

CLOSE RelationCursor 
DEALLOCATE RelationCursor;