检查新值/现有值并在sql中更新

时间:2013-06-07 16:58:57

标签: c# sql-server telerik

我有一个SQL表,项目列值为'Project1,Project2,Project3' 如果他们从telerik下拉列表中选择“Project4”之类的其他值作为“Project1,Project2,Project3,Project4”

,我需要更新此行

我从下拉列表中获取与'Project1,Project2,Project3'相同的值,因此我将其作为SQL的参数发送。

假设他们选择'Project5,Project1'......不应该将Project1添加为已存在。

有人建议我如何检查新值和现有值并相应地更新。 我的简单更新不适用于这种情况。攻击类型。

由于

1 个答案:

答案 0 :(得分:1)

您可以根据需要创建存储过程并使用合并到insertupdate,如下例所示

DECLARE @nameField    VarChar(50) = 'some data'

MERGE dbo.MyTable t
USING (SELECT @nameField [field]) s
    ON t.myData = s.field
WHEN MATCHED THEN
    UPDATE
    SET t.myData = @nameField
WHEN NOT MATCHED THEN
    INSERT (myData)
    VALUES (@nameField);

如果您想限制冗余更新,例如如果使用完全相同的数据更新项目列并阻止此类更新,则您需要创建更新trigger以检查并阻止更新。