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

本文关键字:sql 更新 检查 | 更新日期: 2023-09-27 18:17:38

我有一个SQL表,项目列值为'Project1,Project2,Project3'如果他们从teleerik下拉列表中选择一个不同的值,如'Project4',我需要更新这一行为'Project1,Project2,Project3,Project4'

我从下拉列表中获得与'Project1,Project2,Project3'相同的值,所以我将把它作为参数发送给SQL。

假设他们选择'Project5,Project1'…不应该再添加Project1,因为它已经存在了。

有人可以建议我如何检查新的和现有的值,并相应地更新。我的简单更新对这种情况不起作用。有点震惊。

谢谢

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

您可以创建一个存储过程,并在必要时使用merge to 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);

如果你想限制冗余更新,例如,如果用完全相同的数据更新Project Column并阻止这样的更新,那么你需要创建一个更新触发器来检查和阻止更新