如何在SQL Server中删除多行

Meh*_*eli 3 sql t-sql sql-server

我有一个二手销售汽车数据库和四个关系表.相同的列名称具有关系.

表格是::
RecordRecID Markname Model ...
Features:FeatureID Featurename
Marks:MarkID Markname
Carfeature:CarfeatureID RecID FeatureID

现在,我想删除c#中Marks的标记.当我删除标记时,SQL必须删除具有此标记的所有记录.

我使用了这样的查询:

DELETE from Carfeature 
 where RecID = (select RecID 
 from Record 
 where Mark = (select markname 
                 from Marks 
                where MarkID=@MarkID))";


    string sorgudelmarkfromrecord = "DELETE from Record where Mark=
(select Markname from Marks where MarkID=@MarkID)";

    string sorgudelmark = "DELETE from Marks where MarkID=@MarkID";
Run Code Online (Sandbox Code Playgroud)

当我运行这个时,我收到如下错误消息:

Subquery返回超过1的值.

subquery以下=, !=, <, <= , >, >=或当subquery用作表达式时,不允许这样做.

该语句已终止.

那么,我如何从表中删除多个数据?

And*_*mar 11

如果我理解正确,您可以使用此查询删除cerain MarkID的所有CarFeatures:

DELETE FROM CarFeature 
WHERE RecID IN (
    select RecID 
    from Record 
    where Markname IN (
        select Markname 
        from Marks 
        where MarkID = @MarkID
    )
)
Run Code Online (Sandbox Code Playgroud)

删除记录和标记是此查询的简单版本,我将保留确切的SQL.