我有一个SQL表,项目列值为'Project1,Project2,Project3' 如果他们从telerik下拉列表中选择“Project4”之类的其他值作为“Project1,Project2,Project3,Project4”
,我需要更新此行我从下拉列表中获取与'Project1,Project2,Project3'相同的值,因此我将其作为SQL的参数发送。
假设他们选择'Project5,Project1'......不应该将Project1添加为已存在。
有人建议我如何检查新值和现有值并相应地更新。 我的简单更新不适用于这种情况。攻击类型。
由于
答案 0 :(得分:1)
您可以根据需要创建存储过程并使用合并到insert
或update
,如下例所示
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以检查并阻止更新。