Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    SQL SERVER 2005:problema con assegnamento di variabile

    Ciao a tutti,

    ho un problema nella realizzazione di una stored procedure: vorrei loggare il numero totale delle righe alla fine di un ciclo effettuato con il cursore.

    Posto il codice:

    codice:
    Declare @x BIGINT;
    Set @x=0;
    
    DECLARE  mycursor CURSOR FOR
                     SELECT  field1,field2,field3 FROM @table
    
      OPEN  mycursor 
      FETCH NEXT FROM  mycursor into @field1,@field2,@field3
    
    WHILE @@FETCH_STATUS = 0
              BEGIN
    
        --qui c'è la insert--
    
    
                print ('Numero record inseriti : '+ Cast (@@ROWCOUNT as NVARCHAR)  )
                set @x= (@x+@@ROWCOUNT);
    
                FETCH NEXT FROM mycursor into @field1,@field2,@field3
              END 
    
    print( 'totale record inseriti : '+ Cast(@x as NVARCHAR))
     CLOSE mycursor 
    
      DEALLOCATE mycursor
    Mi torna x=0, anche se loggo rowcount e non è mai 0, non dovrebbe incrementare x?


    Grazie

    Mike "The Ram"

  2. #2
    non basta

    SET @x=@x+1

    ???

  3. #3
    Ciao optime,

    io faccio SET @x=@x+@@ROWCOUNT.

    @@ROWCOUNT sono sicuro che sia diverso da zero perche lo stampo in ogni ciclo, quindi dovrebbe incrementarmi x.

    ma quando stampo a schermo mi esce il valore con cui ho settato @x ( ho provato prima 0 poi un altro numero ) prima del cursore.

    Idee?

    Mike "The Ram"

  4. #4
    Ciao,


    ho risolto il problema:
    richiamare la print( @@ROWCOUNT) fa si che lo stesso @@ROWCOUNT venga azzerato in quanto l'istruzione print stampa e basta, e non modifica righe sul database.

    Occorre pertanto memorizzare @@ROWCOUNT in un altra variabile e incrementarlo a sua volta.

    set @rowcount= @@ROWCOUNT
    .....
    @x=@x+@rowcount

    Grazie per la disponibilità

    Mike "The Ram"

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.