sql >> Databasteknik >  >> RDS >> Sqlserver

Fördelar med att använda markörvariabel i SQL Server (deklarera @cn cursor)

Det finns en annan fördel med att använda DECLARE @local_variable CURSOR syntax som jag just upptäckte.

Fördelen uppstår när en lagrad procedur anropar en annan, och båda procedurerna har markörer öppna samtidigt. Om DECLARE cursor_name CURSOR används för att definiera markörerna, och båda procedurerna använder samma cursor_name, då får du

Å andra sidan, Om DECLARE @local_variable CURSOR används för att definiera markörerna i de överordnade och underordnade lagrade procedurerna, sedan @local_variable är lokal för varje procedur och det finns ingen konflikt. För dem som inte har använt den här metoden tidigare, här är ett exempel, med @C som den lokala variabeln:

DECLARE @C AS CURSOR;

SET @C = CURSOR FOR SELECT ...;

OPEN @C;

FETCH NEXT FROM @C INTO ...;

...



  1. alembic util kommandofel kan inte hitta identifierare

  2. Fallet med kardinalitetsuppskattningen Red Herring

  3. klassen hittades inte undantag com.mysql.jdbc.driver

  4. Returnera kortdagens namn från ett datum i Oracle