Sql 如果在另一个内存表中,则从内存表中删除
我有两个内存表@Holding和@P1 如果该行位于@P1中,我想将其从@Holding中删除 使用下面的代码,不会删除重复项。我没有像许多示例那样的主Id键,对于唯一的行,我有绘图、方法和位置Sql 如果在另一个内存表中,则从内存表中删除,sql,Sql,我有两个内存表@Holding和@P1 如果该行位于@P1中,我想将其从@Holding中删除 使用下面的代码,不会删除重复项。我没有像许多示例那样的主Id键,对于唯一的行,我有绘图、方法和位置 DELETE h FROM @Holding h INNER JOIN @P1 p1 ON p1.DRAWING = h.DRAWING and p1.Method = h.Method and p1.LOCATION = h.LOCATION 您可以尝试使用where-exists 删除h 从@H
DELETE h
FROM @Holding h
INNER JOIN @P1 p1 ON p1.DRAWING = h.DRAWING and p1.Method = h.Method and
p1.LOCATION = h.LOCATION
您可以尝试使用where-exists
删除h
从@Holding h
哪里有(
挑选*
从@P1开始
其中p1.图纸=h.图纸,p1.方法=h.方法,p1.位置=h.位置
)
如果您的副本未被删除,是因为加入@P1以查找它们的要求不正确
仅举一个示例,说明删除/加入按预期工作:
declare @t1 table (c1 int)
declare @t2 table (c1 int)
insert into @t1 values (1),(2),(3)
insert into @t2 values (1)
delete @t1
from @t1 t1
join @t2 t2
on t1.c1=t2.c1
select * from @t1
使用所有3个连接条件运行查询的选择版本。它是否返回0行?如果是这样,您可能有一些数据问题,或者您没有重复的数据。我猜这是SQL Server-请适当标记