开发者

Problem with drop temp table

I have a script which works without 11 line

Declare c Cursor For Select Distinct InvestmentId From dbo.Investment
Open c
DECLARE @InvestmentIdTemp INT
Fetch next From c into @InvestmentIdTemp

While @@Fetch_Status=0 Begin
    Declare @tablevar table(col1 DATETIME)
    insert into @tablevar(col开发者_如何学JAVA1) EXEC dbo.CalculateActualUpdateDate @InvestmentIdTemp
    UPDATE dbo.InvestmentData SET ActualUpdateDate =(SELECT TOP 1 col1 FROM @tablevar) WHERE InvestmentID=@InvestmentIdTemp

    DROP table @tablevar

   Fetch next From c into @InvestmentIdTemp
End

Close c
Deallocate c

where I have an error:

Msg 102, Level 15, State 1, Line 11
Incorrect syntax near '@tablevar'.

How can I drop this table?


as i say the table variable is no real table in the database, that means you cant "DROP" them. You can empty you table at the end of you while loop. You dont need to dispose the variable.

Declare c Cursor For Select Distinct InvestmentId From dbo.Investment
Open c

DECLARE @InvestmentIdTemp INT
Declare @tablevar table(col1 DATETIME)

Fetch next From c into @InvestmentIdTemp

While @@Fetch_Status=0 Begin
    insert into @tablevar(col1) EXEC dbo.CalculateActualUpdateDate @InvestmentIdTemp
    UPDATE dbo.InvestmentData SET ActualUpdateDate =(SELECT TOP 1 col1 FROM @tablevar) WHERE InvestmentID=@InvestmentIdTemp

    delete @tablevar

    Fetch next From c into @InvestmentIdTemp
End

Close c
Deallocate c
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜