Why am I getting the error "non-boolean type specified in a context where a condition is expected" for this request?
SQL Server doesn't support a multi-column IN clause (unlike Oracle).

delete 
from constitue 
where (num_dossier,indice) in select (num_dossier,indice) from @num_dossiers 


This can be rewritten as a EXISTS:

DELETE c
FROM constitue c
WHERE EXISTS 
    (SELECT 1 FROM @num_dossiers nd WHERE n.num_dossier = c.num_dossier AND n.indice = c.indice);