【问题标题】:You must declare the scalar variable "@ID_PLA" when extracting data from the course从课程中提取数据时,您必须声明标量变量“@ID_PLA”
【发布时间】:2019-05-15 11:24:11
【问题描述】:

我有以下代码:

DECLARE @ID_PLA INT
SET @ID_PLA = 0

DECLARE Zakaz_cursor1 CURSOR
FOR SELECT ID_PLACEMENT FROM Zakaz


OPEN Zakaz_cursor1

FETCH NEXT FROM Zakaz_cursor1 INTO @ID_PLA

PRINT @ID_PLA

此代码必须创建一个包含 ID_PLACEMENT 的游标。在此光标之后,检索第一行并添加一个变量,然后将其输出。但是,在执行命令时

FETCH NEXT FROM Zakaz_cursor1 INTO @ID_PLA

我有一个错误:

You must declare a scalar variable "@ID_PLA"

当我声明这个变量时,我不明白这是怎么回事。我该如何解决?

【问题讨论】:

  • 你为什么首先使用光标?根据经验,游标几乎总是被错误地使用。
  • 您共享的代码不会导致该错误。请发布一个完全重现错误的脚本。
  • 好像是你执行下面的代码 SET @ID_PLA = 0

标签: sql-server tsql database-cursor


【解决方案1】:

这是编写 CURSOR 的正确模式-

DECLARE @ID_PLA INT

DECLARE Zakaz_cursor1 CURSOR FOR 
SELECT ID_PLACEMENT FROM Zakaz 

OPEN Zakaz_cursor1  
FETCH NEXT FROM Zakaz_cursor1 INTO @ID_PLA  

WHILE @@FETCH_STATUS = 0  
BEGIN  

      --Perform your actions here 

      PRINT @ID_PLA

      --END of Actions

      FETCH NEXT FROM Zakaz_cursor1 INTO @ID_PLA
END 

CLOSE Zakaz_cursor1  
DEALLOCATE Zakaz_cursor1 

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2011-11-03
    • 1970-01-01
    • 2013-07-03
    • 1970-01-01
    相关资源
    最近更新 更多