Ik had vandaag dit probleem en vond een handige oplossing, althans in een ad-hocsituatie.
Tijdelijke tabellen kunnen worden gemaakt door elke gebruiker met verbindingsmachtigingen. Dit betekent dat u ook GLOBAL tijdelijke tabellen kunt maken.
Voer uw query gewoon uit in enterprise manager (of sql cmd of wat dan ook) met SELECT ...INTO met een globale tijdelijke tabel, bijvoorbeeld
SELECT *
INTO ##mytemptable
FROM SomeTable
WHERE [massive where clause, for example]
U kunt dan de tijdelijke tabel in de BCP-query gebruiken met een simpele
SELECT * FROM ##mytemptable
Laat de tijdelijke tabel dan vallen via enterprise manager
DROP TABLE ##mytemptable