Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Wie verwende ich DELETE mit der EXCEPT-Klausel?

Der Grund, warum es nicht funktioniert, ist, dass Sie tatsächlich zwei Anweisungen nacheinander ausführen. Stellen Sie sich Ihren Code eher wie folgt vor:

DECLARE @ClientID varchar = 'ClientA'

DELETE FROM Global.dto.ClientUsers;

SELECT ClientID, UserID FROM Global.dto.ClientUsers WHERE [email protected]
EXCEPT
SELECT [email protected], UserID FROM ClientA_DB.dbo.Users;

Wenn Sie den Delete ändern möchten -Anweisung müssen Sie ihr ein Where folgen lassen , Join usw.

Einige alternative Methoden, um das gewünschte Ergebnis zu erzielen, finden Sie in den hervorragenden Antworten unter:Using T-SQL EXCEPT with DELETE / Optimierung einer Abfrage