C# 正在查找此Select语句的Delete语句

C# 正在查找此Select语句的Delete语句,c#,asp.net,sql-server,datagridview,sql-delete,C#,Asp.net,Sql Server,Datagridview,Sql Delete,我有一个数据库在生产中,并已被带进来进行更改。一切进展顺利,只是我无法执行删除。我知道这是因为连接和不正确的参考完整性等,但我不能真正改变这一点。 下面的select语句执行时不会出现问题,并显示在gridview中: SELECT [Stock Inventory].MaterialNumber, [Stock Inventory].[Optimum Stock] AS Optimum_Stock, customerservice.Part, customerservi

我有一个数据库在生产中,并已被带进来进行更改。一切进展顺利,只是我无法执行删除。我知道这是因为连接和不正确的参考完整性等,但我不能真正改变这一点。 下面的select语句执行时不会出现问题,并显示在gridview中:

SELECT 
  [Stock Inventory].MaterialNumber, 
  [Stock Inventory].[Optimum Stock] AS Optimum_Stock, 
  customerservice.Part, 
  customerservice.SamplesRequired, 
  customerservice.Frequency, 
  customerservice.Country 
FROM 
  [Stock Inventory] 
  INNER JOIN customerservice 
    ON [Stock Inventory].MaterialNumber = customerservice.Part
我希望使用delete链接,它是生成表的一部分
如果我没有提供足够的信息,请让我知道

因为您提到需要从两个表中删除,您可以这样做:

begin transaction

declare @deleted table (MaterialNumber int) --whatever data type you need
DELETE s
output deleted.MaterialNumber into @deleted
  from [Stock Inventory] as s
  INNER JOIN customerservice as c
    ON s.MaterialNumber = c.Part


DELETE c
from customerservice as c
join @deleted d
    on d.MaterialNumber = c.Part    

commit transaction

它应该是
DELETE s FROM[Stock Inventory]AS s internal JOIN customer服务AS c ON s.MaterialNumber=c.Part
错误。我将很快进行研究,但返回的是:DELETE语句与引用约束“FK_Stock Movement_Stock Inventory”冲突。冲突发生在数据库“WarehouseSamples”、表“dbo.Stock Movement”、列“MaterialNumber”中。有三件事:您必须从-[Stock Inventory]或customerservice中删除哪个表?他们之间有什么关系?这些表与其他表之间是否存在关系?@JohnR-这不是因为
DELETE
语句,而是因为这两个表之间存在外键约束,无法删除引用到另一个表中的数据,您必须先从引用表中删除数据,然后再从第二个表中删除数据,或者在外键定义中使用
CASCADE delete
,我实际上需要从这两个表中删除。CS表是我最近添加的,它包含有关材料的最新信息。我只显示CS表和[Stock Inventory]表中存在的物料,因为CS表中有新信息与该物料关联。今天早上我确实添加了以下内容,这导致了我的删除问题
alter table dbo.customerservice with NOCHECK add constraint customerservice\u part\u FK外键(part)references dbo.[Stock Inventory](MaterialNumber)
这使用删除的伪表来跟踪从[Stock Inventory]中删除的ID以便您可以从customerservice表中删除目标记录。根据您的引用完整性,您可能需要颠倒顺序或设置级联删除等。