我是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
)