2013-04-29 36 views
0

多年来,Oracle PL/SQL的特点是用一个非常快速的简单方法代码从游标中获取数据。对于一个简单的光标,如:SQL Server是否简化了与Oracle相媲美的游标记录提取?

CURSOR emp_cur IS SELECT * FROM EMPLOYEE; 

COLUMNNAMES是自动获取,而不明确地命名他们

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

但这一切我已经在SQL Server中,需要在fetch语句明确列,以及其他繁琐的样板代码如检查@@ FETCH_STATUS等

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

+1

如果您希望将sql右放入FOR构造中,可以进一步简化它。 – OldProgrammer 2013-04-29 23:20:53

+0

我知道了,你在折磨我!因为Oracle非常棒,所以我希望我可以在SQL SERVER中轻松编写代码,现在是强制要求。 – draca 2013-04-30 14:23:29

回答

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; 
相关问题