1
我有通过一定的逻辑循环一些PLSQL代码:转换PLSQL游标FOR循环语法TSQL
FOR I in cur1
LOOP
SELECT value1, value2
FROM db1..table1 t1
END LOOP;
任何人都可以向我解释的语法在TSQL这样做呢?
我有通过一定的逻辑循环一些PLSQL代码:转换PLSQL游标FOR循环语法TSQL
FOR I in cur1
LOOP
SELECT value1, value2
FROM db1..table1 t1
END LOOP;
任何人都可以向我解释的语法在TSQL这样做呢?
这是标准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
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
从Oracle的世界在这里游标是更为常见的到来,海报probaly来使用它们。在SQL Server中避免它们是非常重要的。 – HLGEM 2010-08-24 16:39:24