none
[T-SQL]Selezionare "colonna" da riga restituita dal cursore RRS feed

  • Domanda

  • Ciao,

    ho un cursore che con la fetch restituisce una riga composta da due campi.

    Come faccio a selezionare un campo solo per ad esempio inserirlo in un'altra tabella con un update?

    Grazie 1000!!!!

    Ciao!

    martedì 25 ottobre 2011 15:27

Risposte

  • Come faccio a selezionare un campo solo per ad esempio inserirlo in un'altra tabella con un update?


    Potresti utilizzare:

    FETCH NEXT FROM <cursor> INTO @Col_1, @Col_2
    
    

    ovviamente dopo aver dichiarato @Col_1 e @Col_2, qui trovi alcuni esempi.

    In generale, però, ti sconsiglio di utilizzare cursori perchè costringono SQL Server ad effettuare operazioni row-by-row e non set-based...

    Dal tuo post non è chiaro lo scenario, però se devi solo fare un update su un'altra tabella potresti utilizzare UPDATE FROM.

    Se proprio non puoi fare a meno del cursore, valuta di applicare le opzioni di ottimizzazione come FAST_FORWARD, LOCAL e READ_ONLY.

    Ciao!


    Sergio Govoni
    SQL Server MVP
    MVP Profile: https://mvp.support.microsoft.com/profile/Sergio.Govoni
    Blog: http://community.ugiss.org/blogs/sgovoni
    martedì 25 ottobre 2011 23:45
    Moderatore

Tutte le risposte

  • Come faccio a selezionare un campo solo per ad esempio inserirlo in un'altra tabella con un update?


    Potresti utilizzare:

    FETCH NEXT FROM <cursor> INTO @Col_1, @Col_2
    
    

    ovviamente dopo aver dichiarato @Col_1 e @Col_2, qui trovi alcuni esempi.

    In generale, però, ti sconsiglio di utilizzare cursori perchè costringono SQL Server ad effettuare operazioni row-by-row e non set-based...

    Dal tuo post non è chiaro lo scenario, però se devi solo fare un update su un'altra tabella potresti utilizzare UPDATE FROM.

    Se proprio non puoi fare a meno del cursore, valuta di applicare le opzioni di ottimizzazione come FAST_FORWARD, LOCAL e READ_ONLY.

    Ciao!


    Sergio Govoni
    SQL Server MVP
    MVP Profile: https://mvp.support.microsoft.com/profile/Sergio.Govoni
    Blog: http://community.ugiss.org/blogs/sgovoni
    martedì 25 ottobre 2011 23:45
    Moderatore
  • Ti ringrazio.

    In sostanza penso di essere obbligato ad utilizzare i cursori, in quanto è una situazione alquanto complicata e con l'update classica non sono riuscito a venirne fuori.

    Comunque indago un po' su questa update from...se ho altri dubbi ti scrivo. Grazie ancora!

     

    mercoledì 26 ottobre 2011 07:03