Sql server 如何从另一个表中删除与之匹配的记录?

Sql server 如何从另一个表中删除与之匹配的记录?,sql-server,view,Sql Server,View,我有以下视图(没有schyrsem的学生)来显示schyrsem表中没有相关记录的记录列表: SELECT Students.IDNo, Students.LastName, Students.FirstName FROM Students LEFT JOIN SchYrSem ON Students.[IDNo] = SchYrSem.[IDNo] WHERE (((SchYrSem.IDNo) Is Null)); 当我删除记录时,它会说: 视图或函数“students w/o schyr

我有以下视图(没有schyrsem的学生)来显示schyrsem表中没有相关记录的记录列表:

SELECT Students.IDNo, Students.LastName, Students.FirstName
FROM Students LEFT JOIN SchYrSem ON Students.[IDNo] = SchYrSem.[IDNo]
WHERE (((SchYrSem.IDNo) Is Null));
当我删除记录时,它会说:

视图或函数“students w/o schyrsem”不可更新,因为修改会影响多个基表

知道我如何从学生表中删除记录而不在SchYrSem表中匹配记录吗

DELETE s
  FROM dbo.Students AS s 
  LEFT OUTER JOIN dbo.SchYrSem AS ss
  ON ss.IDNo = s.IDNo
  WHERE ss.IDNo IS NULL;

你不应该试图从视图中删除一行,IMHO

DELETE s    
  FROM dbo.Students AS s   
  WHERE NOT EXISTS   
  (
     SELECT 1
      FROM dbo.SchYrSem
      WHERE IDNo = s.IDNo   
  );