Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 如果在另一个内存表中,则从内存表中删除_Sql - Fatal编程技术网

Sql 如果在另一个内存表中,则从内存表中删除

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

我有两个内存表@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
从@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-请适当标记