Sqlserver
 sql >> Baza danych >  >> RDS >> Sqlserver

Zalety używania zmiennej kursora w SQL Server (deklaruj @cn cursor)

Jest jeszcze jedna zaleta używania DECLARE @local_variable CURSOR składnia, którą właśnie odkryłem.

Zaleta występuje, gdy jedna procedura składowana wywołuje inną, a obie procedury mają otwarte jednocześnie kursory. Jeśli DECLARE cursor_name CURSOR służy do definiowania kursorów, a obie procedury używają tej samej nazwy_kursora, więc otrzymujesz

Z drugiej strony, jeśli DECLARE @local_variable CURSOR służy do definiowania kursorów w nadrzędnych i podrzędnych procedurach składowanych, a następnie @local_variable jest lokalny dla każdej procedury i nie ma konfliktu. Dla tych, którzy wcześniej nie używali tej metody, oto przykład, używając @C jako zmienna lokalna:

DECLARE @C AS CURSOR;

SET @C = CURSOR FOR SELECT ...;

OPEN @C;

FETCH NEXT FROM @C INTO ...;

...



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Niezawodność SqlDependency?

  2. Obowiązkowy klucz podstawowy dla serwera SQL

  3. dziwne skrypty generowane przez SQL Server podczas eksportu zadania

  4. Udzielić użytkownikowi uprawnienia do wykonywania wszystkich procedur składowanych w bazie danych?

  5. Zapytanie SQL, aby uzyskać ostatni rekord każdej minuty