这应该很简单,我找不到办法:
我想使用游标遍历表的所有行,我需要该行的所有列:
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
不幸的是,我无法声明一个变量,即我的光标的行类型......或者我可以吗?
答案 0 :(得分:4)
我已经提到不需要游标,但你也应该总是在插入中指定列。您的整个游标可以简化为这些行的简单插入语句。
Insert Centres(l1, l2, l3)
select l1, l2, l3
from Table_1
答案 1 :(得分:1)
不,SQL Server中没有Row
类型的东西。