0

我有一个 SQL 表,其项目列值为“Project1,Project2,Project3”,如果他们从 Telerik 下拉列表中选择不同的值(如“Project4”为“Project1,Project2,Project3,Project4”),我需要更新此行

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

假设如果他们选择“Project5,Project1”...Project1 不应添加,因为它已经存在。

有人可以建议我如何检查新值和现有值并进行相应更新。我的简单更新不适用于这种情况。有点震惊。

谢谢

4

1 回答 1

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);

如果您想限制冗余更新,例如,如果使用完全相同的数据更新项目列并阻止此类更新,那么您需要创建一个更新触发器来检查和阻止更新。

于 2013-06-07T17:07:40.520 回答