从SQL Server中的游标检索行

时间:2016-01-05 16:23:35

标签: sql sql-server

这应该很简单,我找不到办法:

我想使用游标遍历表的所有行,我需要该行的所有列:

DECLARE cursor1 CURSOR FOR
    SELECT *
    FROM Table_1 order by l1;

DECLARE rr ROW for cursor1;     /*does not work */

OPEN cursor1;
FETCH NEXT FROM cursor1 into rr;    /*does not work */

WHILE @@FETCH_STATUS = 0
BEGIN
    INSERT INTO Centres 
    VALUES(rr.l1, rr.l2, rr.l3)    /*does not work because of rr */

    FETCH NEXT FROM cursor1 into rr;    /*does not work */
END;

CLOSE cursor1;
DEALLOCATE cursor1;
GO

不幸的是,我无法声明一个变量,即我的光标的行类型......或者我可以吗?

2 个答案:

答案 0 :(得分:4)

我已经提到不需要游标,但你也应该总是在插入中指定列。您的整个游标可以简化为这些行的简单插入语句。

Insert Centres(l1, l2, l3)
select l1, l2, l3
from Table_1

答案 1 :(得分:1)

不,SQL Server中没有Row类型的东西。