sql >> Database >  >> RDS >> Sqlserver

Voordelen bij het gebruik van cursorvariabele in SQL Server (declare @cn cursor)

Er is nog een voordeel aan het gebruik van de DECLARE @local_variable CURSOR syntaxis die ik zojuist heb ontdekt.

Het voordeel doet zich voor wanneer de ene opgeslagen procedure een andere oproept, en beide procedures hebben tegelijkertijd cursors geopend. Als DECLARE cursor_name CURSOR wordt gebruikt om de cursors te definiëren, en beide procedures gebruiken dezelfde cursor_name, dan krijg je

Aan de andere kant, als DECLARE @local_variable CURSOR wordt gebruikt om de cursors in de bovenliggende en onderliggende opgeslagen procedures te definiëren, en vervolgens @local_variable is lokaal voor elke procedure en er is geen conflict. Voor degenen die deze methode nog niet eerder hebben gebruikt, hier is een voorbeeld, met behulp van @C als de lokale variabele:

DECLARE @C AS CURSOR;

SET @C = CURSOR FOR SELECT ...;

OPEN @C;

FETCH NEXT FROM @C INTO ...;

...



  1. Hoe maak je een passthrough / passthru-query bewerkbaar?

  2. Wat is het verschil tussen mysql.createConnection en mysql.createPool in de Node.js MySQL-module?

  3. Verwijderknop werkt niet in CodeIgniter

  4. MySQL Server is verdwenen bij het importeren van een groot sql-bestand