MS SQL Server 2012 – 如果行不存在,请插入值。

我是SQL新手,我需要在插入某行的值之前检查它们是否存在。

我试图同时向几条记录插入详细信息。

我的代码如下。

insert into [Test].[Projects]([TestID], [GroupID], [TestingID], [Grade])
values 
    (314, 9, 77, 2)
    ,(314, 9, 77, 3)
    ,(314, 9, 77, 4)
    ,(329, 2, 65, 2)
    ,(329, 2, 65, 3)
    ,(329, 2, 65, 4)
go

如果有人能帮我在行值不存在的情况下插入这些值,我将非常感激。

解决方案:

你可以使用 insert ... select 句法,带 not exists 条件,确保表中不存在相同的记录。

insert into Test.Projects(TestID, GroupID, TestingID, Grade)
select v.*
from (values 
    (314, 9, 77, 2), 
    (314, 9, 77, 3), 
    (314, 9, 77, 4), 
    (329, 2, 65, 2), 
    (329, 2, 65, 3), 
    (329, 2, 65, 4)
) v(TestID, GroupID, TestingID, Grade)
where not exists (
    select 1 
    from Test.Projects p
    where 
        p.TestID = v.TestID 
        and p.GroupID = v.GroupID 
        and p.TestingID = v.TestingID
        and p.Grade = v.Grade
)

给TA打赏
共{{data.count}}人
人已打赏
未分类

调试反应组件重新渲染

2022-9-8 11:00:37

未分类

如何在C#中把ogg文件转换为wav文件

2022-9-8 11:00:39

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索