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

    [SQL SERVER] Stored procedure con default value uguale al valore già inserito

    ciao!

    io ho questa stored procedure:
    codice:
    ALTER   PROCEDURE [dbo].[usp_UpdateNews]
        @idNews int
        ,@Titolo nvarchar(20)
        ,@fkCategoria int
        ,@Testo text
        ,@Immagine1 nvarchar(200) = ''
        ,@Immagine2 nvarchar(200) = ''
        ,@Immagine3 nvarchar(200) = ''
        ,@Immagine4 nvarchar(200) = ''
        ,@Pubblicata bit
    AS
    BEGIN
        
        SET NOCOUNT ON;
     BEGIN TRY  
     
    UPDATE [dbo].[News] SET
           [Titolo] = @Titolo
           ,[fkCategoria] = @fkCategoria
           ,[Immagine1] = @Immagine1
           ,[Immagine2] = @Immagine2
           ,[Immagine3] = @Immagine3
           ,[Immagine4] = @Immagine4
           ,[Testo] = @Testo
           ,[Pubblicata] = @Pubblicata
    WHERE [idNews]= @idNews
      
    END TRY
    BEGIN CATCH
    .....................
    
      END CATCH;
    
    END
    io vorrei fare in modo che i valori delle immagini non vengano sovrascritti se gli arriva una stringa vuota.
    avevo pensato quindi di rimettergli il valore che già hanno.
    è possibile una cosa del genere??

  2. #2
    prova con qualcosa del tipo

    [Immagine1] = ISNULL(@Immagine1, [Immagine1])

  3. #3
    ovviamente nella dichiarazione va

    ,@Immagine1 nvarchar(200) = NULL

  4. #4
    ciao!

    ho provato a modificare la SP come i hai detto:
    codice:
      ,@Immagine1 nvarchar(200) = NULL
       ,@Immagine2 nvarchar(200) = NULL
       ,@Immagine3 nvarchar(200) = NULL
       ,@Immagine4 nvarchar(200) = NULL
    
    
           ,[Immagine1] = ISNULL(@Immagine1, [Immagine1])
           ,[Immagine2] = ISNULL(@Immagine2, [Immagine2])
           ,[Immagine3] = ISNULL(@Immagine3, [Immagine3])
           ,[Immagine4] = ISNULL(@Immagine4, [Immagine4])
    il problema è che se gli passo una stringa vuota o Nothing, va in errore:
    codice:
    System.Data.SqlClient.SqlException (0x80131904): Must declare the scalar variable "@Immagine3".

  5. #5
    se è vuota o Nothing NON devi passarla

  6. #6
    Quote Originariamente inviata da optime Visualizza il messaggio
    se è vuota o Nothing NON devi passarla
    ah ok ok, non avevo inteso.
    grazie!!

  7. #7

  8. #8
    Quote Originariamente inviata da optime Visualizza il messaggio
    quindi tuttaposhto?
    sembrerebbe di si, nel senso che ho fatto qualche prova al volo e non ho avuto problemi.
    solo che la pagina web l'ho pubblicata con una soluzione più "manuale".

    appena posso sistemo!

  9. #9

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 © 2025 vBulletin Solutions, Inc. All rights reserved.