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

SQL Server-Fremdschlüsselkonflikt in einer Anweisung mit mehreren Werten?

Sie können dies in eine SELECT-Anweisung umwandeln, um die Zeilen zu finden, die nicht übereinstimmen.

Angenommen, die Spalte a verweist auf die Tabelle other Im Folgenden werden die Werte angezeigt, die in der anderen Tabelle nicht vorhanden sind:

select *
from (
  values 
   (1, a, b), 
   (2, a, b), 
    ...
   (9999, a, b)
) t(num,a,b)
where not exists (select 1 
                  from other o 
                  where o.id = t.a);

Der select .. from ( values ) erfordert SQL Server 2012 oder neuer - aber da Sie dieses Tag verwendet haben, sollten Sie es verwenden können.