Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Предимства при използването на курсорна променлива в SQL Server (декларирайте @cn курсор)

Има още едно предимство при използването на DECLARE @local_variable CURSOR синтаксис, който току-що открих.

Предимството възниква, когато една запаметена процедура извиква друга и двете процедури имат отворени курсори едновременно. Ако DECLARE cursor_name CURSOR се използва за дефиниране на курсорите и двете процедури използват едно и също cursor_name, тогава получавате

От друга страна, ако DECLARE @local_variable CURSOR се използва за дефиниране на курсорите в родителските и дъщерните съхранени процедури, след това @local_variable е локален за всяка процедура и няма конфликт. За тези, които не са използвали този метод преди, ето пример с @C като локална променлива:

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. Има ли SQL Server Profiler за SQL Server Express?

  2. Използване на подзаявки в SQL за намиране на max(count())

  3. exec не успя, защото името не е валиден идентификатор?

  4. Как да свържа Cakephp 1.3 с MS SQLServer 2008?

  5. Сума от минути между множество периоди от време