Visualizzazione dei risultati da 1 a 5 su 5
  1. #1
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916

    [SQL] Stored Procedure select e update

    Ciao, stò cercando di fare una SP come descritto di seguito:

    1) faccio una select

    in OUTPUT mi faccio restituire la variabile @xdocmCSer

    2) Per ogni record in base a @xdocmCSer, richiamo due update in 2 tabelle:

    a) UPDATE ordiniAperti set ... where id = @xdocmCSer
    b) UPDATE documenti set ... where id = @xdocmCSer


    facendo come sotto però mi da un solo record e non tutti quelli della select.

    codice:
    
    USE [db1]
    GO
    
    SET ANSI_NULLS ON
    GO
    SET QUOTED_IDENTIFIER ON
    GO
    ALTER PROCEDURE [dbo].[yro]
    @xdocmCSer int OUTPUT
    AS
    BEGIN
    SET NOCOUNT ON;
    SELECT @xdocmCSer = xdocmCSer from xOrdiniRapAperti
    END
    QUalcuno mi può indirizzare?
    Grazie.
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  2. #2
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    In una variabile ci sta solamente 1 valore ...
    Se vuoi che la tua procedura effettui una sorta di ciclo che prende il valore, effettua l'update, prende il valore successivo, effettua l'update, etc, devi usare un cursore

    Qualcosa del genere (scrivo a memoria...)

    codice:
    DECLARE 
    @xdocmCSer int    
    
    DECLARE cur_Level CURSOR LOCAL FOR
    	SELECT xdocmCSer from xOrdiniRapAperti
    
    OPEN cur_Level
    	FETCH NEXT FROM cur_Level INTO @xdocmCSer
    			
    	WHILE @@FETCH_STATUS = 0
    	BEGIN
    	
    		UPDATE ordiniAperti set ... where id = @xdocmCSer
    		UPDATE documenti set ... where id = @xdocmCSer		
    
    		FETCH NEXT FROM cur_Level INTO @xdocmCSer
    
    	END
    
    CLOSE cur_Level
    DEALLOCATE cur_Level

  3. #3
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    ok, ho capito.


    domanda...

    potrei fare la stessa cosa con una semplice:

    codice:
    UPDATE tabella SET campo = 1  WHERE [xdocmCSer] IN (SELECT xdocmCSer from Ordini)
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

  4. #4
    Utente di HTML.it L'avatar di comas17
    Registrato dal
    Apr 2002
    Messaggi
    6,522
    Si

    http://forum.html.it/forum/showthrea...readid=1470154



    (a me piacciono i cursori... )

  5. #5
    Utente di HTML.it L'avatar di yro
    Registrato dal
    Sep 2003
    Messaggi
    2,916
    Originariamente inviato da comas17
    Si

    http://forum.html.it/forum/showthrea...readid=1470154



    (a me piacciono i cursori... )


    e io cerco sempre le cose più complicate ...
    E se avessi il dono della profezia e conoscessi tutti i misteri e tutta la scienza, e possedessi la pienezza della fede così da trasportare le montagne, ma non avessi la carità, non sono nulla.

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.