1

多年来,Oracle PL/SQL 提供了一种非常快速和简单的方法代码,用于从游标中获取数据。对于一个简单的光标,如:

CURSOR emp_cur IS SELECT * FROM EMPLOYEE;

列名会自动获取,无需明确命名

FOR record IN emp_cur LOOP
 dbms_output.put_line('its ' || record.columnname );
END LOOP;

但是我在 SQL Server 中找到的所有内容都需要 fetch 语句中的显式列,以及其他繁琐的样板代码,例如检查 @@FETCH_STATUS 等

SQL Server 2012 是否提出了可以与 Oracle 的简单技术相媲美的东西?

4

1 回答 1

0

截至 2013 年 4 月 30 日,最新版本的 SQL Server 是 2012,没有与 Oracle 类似的“语法等效”功能。是好是坏还有待商榷。你所假设的等价物看起来并不难,所以我不确定抱怨是什么。

declare @name varchar(10);
declare emp_cur cursor LOCAL STATIC FORWARD_ONLY for
    select name from employee;
open emp_cur;
fetch next from emp_cur into @name;
while @@FETCH_STATUS = 0 begin
    PRINT 'its ' + @name;
    fetch next from emp_cur into @name;
end;
于 2013-04-29T22:56:09.387 回答