Sql Server Stored Procedure Parametre Null İse Sütun Güncellenmesin

  1. yılmazyazgan
    4
    240
    5/23/2019 3:31:00 PM

    Stored Procedure e gönderdiğim parametre null ise, o alanın güncellenmesini istemiyorum,zaten güncellenirse null oluyor dolu olan alanım

    sp aşağıdaki gibi

    CREATE PROCEDURE dbo.sp_Update_Satislar
    @Id AS INT,
    @urunId AS INT,
    @SatisCode AS NVARCHAR(20)=NULL,
    ...
    AS
    UPDATE dbo.Satis
    SET         
    urunId = @urunId ,           
    SatisCode = @SatisCode ,     
    ...
    where Id=@Id 
    

    bazen SatisCode alanı null gonderebiliyorum , bu durumda en sonki satış numarasını güncellenmemesini sağlamak istiyorum , yukardaki haliyle eski satiscode alanımdaki değer null oluyor

    sql-server sql-server-2017 sql-server-2016 sql-server-2014 25 gün önce 152 Görüntüleme

( 1 ) Cevap

  1. deniz
    3
    3437
    5/23/2019 3:42:00 PM

    COALESCE() fonksiyonunu kullanabilirsin

    Eğer @SatisCode null değil ise @SatisCode içindeki değer yeni değer olur

    Eğer @SatisCode null ise SatisCode daki yani mevcut değer yeni değer olur yani veri aynı kalır

    AS
    UPDATE dbo.Satis
    SET         
    urunId = @urunId ,           
    SatisCode = COALESCE(@SatisCode , SatisCode),
    

Cevabınız