Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Конфликт на външен ключ на SQL Server в израз с множество стойности?

Можете да превърнете това в оператор SELECT, за да намерите редовете, които не съвпадат.

Ако приемем, че колоната a препраща към таблицата other следното ще покаже стойностите, които не присъстват в другата таблица:

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);

select .. from ( values ) изисква SQL Server 2012 или по-нов - но тъй като сте използвали този маркер, трябва да можете да го използвате.




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо T-SQL ISNULL() съкращава низа, а COALESCE не?

  2. Използване на вградена функция за конвертиране на sql в критерии за nhibernate

  3. Грешка при аритметично препълване (числово към числово) с MERGE:Грешка в SQL Server?

  4. Съхраняване на данни в неазбучен ред

  5. Защо да използвате първичен ключ без null в TSQL?