alter proc SetSetting @name nvarchar(50) , @grooh nvarchar(50), @value nvarchar(2000), @defaultValue nvarchar(50), @Kar_ID int, @tag nvarchar(200), @isPublic bit, @formName nvarchar(50) 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