2010-08-24 47 views

回答

2

这是标准TSQL光标中的通用循环。但尽可能避免使用游标。他们的表现非常糟糕。

DECLARE @somevariable VARIABLE_TYPE_HERE 
DECLARE @sampleCursor CURSOR 

SET @sampleCursor = CURSOR FOR 
SELECT somefield... from bla bla bla... 

OPEN @sampleCursor 
FETCH NEXT 
FROM @sampleCursor INTO @somevariable 
WHILE @@FETCH_STATUS = 0 
BEGIN 

PRINT @somevariable 

FETCH NEXT 
FROM @sampleCursor INTO @somevariable 

END 
CLOSE @sampleCursor 
DEALLOCATE @sampleCursor 
+0

从Oracle的世界在这里游标是更为常见的到来,海报probaly来使用它们。在SQL Server中避免它们是非常重要的。 – HLGEM 2010-08-24 16:39:24

0

T-SQL中没有FOR。与WHILE一个例子:

DECLARE Employee_Cursor CURSOR FOR 
SELECT EmployeeID, Title 
FROM AdventureWorks2008R2.HumanResources.Employee 

OPEN Employee_Cursor; 

FETCH NEXT FROM Employee_Cursor; 

WHILE @@FETCH_STATUS = 0 
BEGIN 
    FETCH NEXT FROM Employee_Cursor; 
END; 

CLOSE Employee_Cursor; 

DEALLOCATE Employee_Cursor; 

欲了解更多信息:http://msdn.microsoft.com/en-us/library/ms178642.aspx