sql >> Base de Datos >  >> RDS >> Sqlserver

Ventajas de usar la variable de cursor en SQL Server (declarar @cn cursor)

Hay otra ventaja de usar el DECLARE @local_variable CURSOR sintaxis que acabo de descubrir.

La ventaja ocurre cuando un procedimiento almacenado llama a otro y ambos procedimientos tienen cursores abiertos al mismo tiempo. Si DECLARE cursor_name CURSOR se usa para definir los cursores, y ambos procedimientos usan el mismo nombre_cursor, entonces obtienes

Por otro lado, si DECLARE @local_variable CURSOR se usa para definir los cursores en los procedimientos almacenados principal y secundario, luego @local_variable es local para cada procedimiento y no hay conflicto. Para aquellos que no han usado este método antes, aquí hay un ejemplo, usando @C como la variable local:

DECLARE @C AS CURSOR;

SET @C = CURSOR FOR SELECT ...;

OPEN @C;

FETCH NEXT FROM @C INTO ...;

...