DECLARE cSet CURSOR FOR SELECT vId FROM SetDef OPEN cSet FETCH NEXT FROM cSet INTO @vId WHILE @@FETCH_STATUS =0 BEGIN EXEC('DELETE FROM '+@vId+' WHERE vId='+@vKey) FETCH NEXT FROM cSet INTO @vId END CLOSE cSet DEALLOCATE cSet
q.open; repeat i=1; q.first; while not q.eof do begin ... q.next; end inc(i); until i<6;
例如 從Table1中查出來,數知道Table2中 Table1字段 Field1 ,Field2 Table2 字段 Field3 ,Field4declare @Field1 varchar(10),@field2 int DECLARE Insert_cur CURSOR FOR SELECT Field1, Field2 FROM Table1 OPEN Insert_cur FETCH NEXT FROM Insert_cur INTO @Field1,@field2 WHILE @@FETCH_STATUS =0 BEGIN insert into Table2 (Field3,Field4) select @Field1,@field2 FETCH NEXT FROM Insert_cur INTO @Field1,@field2 END CLOSE Insert_cur DEALLOCATE Insert_cur
游标处理 declare @Field1 varchar(10),@field2 int DECLARE Insert_cur CURSOR FOR SELECT Field1, Field2 FROM Table1 OPEN Insert_cur FETCH NEXT FROM Insert_cur INTO @Field1,@field2 WHILE @@FETCH_STATUS =0 BEGIN insert into Table2 (Field3,Field4) select @Field1,@field2 FETCH NEXT FROM Insert_cur INTO @Field1,@field2 END CLOSE Insert_cur DEALLOCATE Insert_cur
游标类似DELPHI中的queryDECLARE @vId VARCHAR(10) DECLARE cSet CURSOR FOR SELECT vId FROM SetDef --声明游标,后面为相关SQL OPEN cSet --打开游标 FETCH NEXT FROM cSet INTO @vId --把游标中记录放入变量,如果字段多,则用多个变量 WHILE @@FETCH_STATUS =0 --游标的循环状态 BEGIN --执行相关操作,@vId可用于任意SQL FETCH NEXT FROM cSet INTO @vId --读下一记录 END CLOSE cSet --关闭游标 DEALLOCATE cSet --释放资源
OPEN cSet
FETCH NEXT FROM cSet INTO @vId
WHILE @@FETCH_STATUS =0
BEGIN
EXEC('DELETE FROM '+@vId+' WHERE vId='+@vKey)
FETCH NEXT FROM cSet INTO @vId
END
CLOSE cSet
DEALLOCATE cSet
repeat
i=1;
q.first;
while not q.eof do
begin
...
q.next;
end
inc(i);
until i<6;
Table1字段 Field1 ,Field2
Table2 字段 Field3 ,Field4declare @Field1 varchar(10),@field2 int
DECLARE Insert_cur CURSOR
FOR
SELECT Field1, Field2 FROM Table1
OPEN Insert_cur
FETCH NEXT FROM Insert_cur INTO @Field1,@field2
WHILE @@FETCH_STATUS =0
BEGIN
insert into Table2 (Field3,Field4) select @Field1,@field2
FETCH NEXT FROM Insert_cur INTO @Field1,@field2
END
CLOSE Insert_cur
DEALLOCATE Insert_cur
declare @Field1 varchar(10),@field2 int
DECLARE Insert_cur CURSOR
FOR
SELECT Field1, Field2 FROM Table1
OPEN Insert_cur
FETCH NEXT FROM Insert_cur INTO @Field1,@field2
WHILE @@FETCH_STATUS =0
BEGIN
insert into Table2 (Field3,Field4) select @Field1,@field2
FETCH NEXT FROM Insert_cur INTO @Field1,@field2
END
CLOSE Insert_cur
DEALLOCATE Insert_cur
DECLARE cSet CURSOR FOR SELECT vId FROM SetDef --声明游标,后面为相关SQL
OPEN cSet --打开游标
FETCH NEXT FROM cSet INTO @vId --把游标中记录放入变量,如果字段多,则用多个变量
WHILE @@FETCH_STATUS =0 --游标的循环状态
BEGIN
--执行相关操作,@vId可用于任意SQL
FETCH NEXT FROM cSet INTO @vId --读下一记录
END
CLOSE cSet --关闭游标
DEALLOCATE cSet --释放资源