我试图编写一个查询,仅当MaSV存在于另一个服务器链接的SinhVien的同一个表中时,才更新MaDeTai。我想设置MadeTai = 'DT3',其中MaSV = 'SVCNTT1',但当我运行时,SQL更新所有的SinhVien表,而不仅仅是MaSV = 'SVCNTT1'
UPDATE [DESKTOP-DPTRB14\MSSQLSERVER04].[DOANHUNRE].[dbo].[SinhVien]
SET MaDeTai = 'DT3'
WHERE EXISTS (
SELECT 1
FROM [DESKTOP-DPTRB14\MSSQLSERVER01].[DOANHUNRE].[dbo].[SinhVien] SV2
WHERE SV2.MaSV = MaSV AND SV2.MaSV = 'SVCNTT1'
);
1条答案
按热度按时间2q5ifsrm1#
您没有将exists子查询与要更新的表进行比较,所以是的,它对每一行都是true。请尝试以下操作:
请注意简短而有意义的表别名。