如果数据不存在则插入数据

时间:2016-07-29 16:32:05

标签: sql sql-server

仅当我的查询参数尚未添加时,我才想在我的列中插入一些数据。

例如,如果我的行包含:

a=4&b=7&c=9

现在,当更新发生时:b = 7& c = 9,那么我不应该追加它。

o/p:a=4&b=7&c=9

但是如果更新发生在d = 9& e = 9 然后它应该追加它。

o/p : a=4&b=7&c=9&d=9&e=9

我的正常更新查询是:

@AdditionalParams = 'b=7&c=9'
SELECT @id = mid FROM Table2 WHERE sid = @SId
                AND cid = @CId;

            UPDATE Table1
            SET additional_params = CONCAT (
                    additional_params
                    ,iif(additional_params IS NULL, NULL, '&')
                    ,@AdditionalParams
                    )
            WHERE mid = @id

我如何在这里使用NOT EXIST Clasue。

但是如果没有存在子句它检查整行,我只想检查参数是否存在,然后不要插入它。

1 个答案:

答案 0 :(得分:1)

我猜你正在寻找一个不喜欢的条款

declare @AdditionalParams varchar(50) = 'b=7&c=8'
SELECT @id = mid 
   FROM Table2 
  WHERE sid = @SId
   AND cid = @CId;

  UPDATE Table1
  SET additional_params = CONCAT (
                     additional_params
                    ,iif(additional_params IS NULL, NULL, '&')
                    ,@AdditionalParams
                    )
   WHERE mid = @id
     and additional_params not like '%'+ @AdditionalParams +'%';