Sql server 如何从另一个表中删除与之匹配的记录?
我有以下视图(没有schyrsem的学生)来显示schyrsem表中没有相关记录的记录列表: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
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
);