Jeg havde dette problem i dag og fandt en praktisk løsning, i det mindste i en ad hoc-situation.
Midlertidige tabeller kan oprettes af enhver bruger med forbindelsestilladelser. Det betyder, at du også kan oprette GLOBALE midlertidige tabeller.
Bare kør din forespørgsel i Enterprise Manager (eller sql cmd eller hvad som helst) ved hjælp af SELECT ...INTO med en global midlertidig tabel, f.eks.
SELECT *
INTO ##mytemptable
FROM SomeTable
WHERE [massive where clause, for example]
Du kan derefter bruge den midlertidige tabel i BCP-forespørgslen med en simpel
SELECT * FROM ##mytemptable
Slip derefter vikartabellen gennem Enterprise Manager
DROP TABLE ##mytemptable