alter proc SetSetting @name nvarchar(100) , @grooh nvarchar(100), @value nvarchar(2000), @defaultValue nvarchar(400), @Kar_ID int, @tag nvarchar(400), @isPublic bit, @formName nvarchar(100) as begin if exists( select ID from settings where name=@name and (@grooh is null or gorooh=@grooh) and (@Kar_ID is null or Kar_ID=@Kar_ID) and (@formname is null or formname=@formname) ) begin update settings set name=@name, gorooh=@grooh, value=@value, @defaultValue=@defaultvalue, Kar_ID=@Kar_ID, tag=@tag, isPublic=@ispublic, formname=@formname where name=@name and (@grooh is null or gorooh=@grooh) and (@Kar_ID is null or Kar_ID=@Kar_ID) and (@formname is null or formname=@formname) end else begin insert into settings (name,gorooh,value,defaultValue,Kar_ID,tag,ispublic,formname)values (@name,@grooh,@value,@defaultValue,@Kar_ID,@tag,@ispublic,@formname) end end