这不是您的正常更新/插入它可能是由于我当前传递值的方式,但我想检查是否可能。
我们在代码运行后动态构建一个类似于以下内容的insert语句。
(1, 1, SYSDATETIME(), null),
(4, 1, SYSDATETIME(), null),
(6, 1, SYSDATETIME(), null),
(8, 1, SYSDATETIME(), null)
我们使用dapper将此传递给SQL,如下所示:
IF(@Activities IS NOT NULL)
Begin
EXEC('INSERT INTO [User].[User_Activities]
(ActivitieId, UserId, DateCreated, DateDeleted)
VALUES' + @Activities)
END
哪个成功执行,我们现在遇到的问题是用户然后返回页面并删除一个活动并添加一个新的活动,然后我们需要删除已移除的活动然后插入新活动,我们目前在应用程序中有一个字符串,其填充如下:
var activityId = "1,4,6,8";
我知道我可以在update语句中删除不在其中的Activity,即ActivityId不在(@activityId)但我不确定如何插入新选择的Activity,因为如果我让它运行然后我们将在ActivityTable中获得重复项。
现在我可能过度思考这个因为我在过去10个小时内编码的事实所以我的思绪有点疲惫,任何建议都会受到赞赏。