Sqlserver
 sql >> Database >  >> RDS >> Sqlserver

Posso specificare un file sql di input con bcp?

Ho avuto questo problema oggi e ho trovato una soluzione alternativa conveniente, almeno in una situazione ad hoc.

Le tabelle temporanee possono essere create da qualsiasi utente con autorizzazioni di connessione. Ciò significa che puoi anche creare tabelle temporanee GLOBAL.

Basta eseguire la query in Enterprise Manager (o sql cmd o altro) utilizzando SELECT ...INTO con una tabella temporanea globale, ad es.

SELECT * 
INTO ##mytemptable
FROM SomeTable 
WHERE [massive where clause, for example] 

È quindi possibile utilizzare la tabella temporanea nella query BCP con un semplice

SELECT * FROM ##mytemptable

Quindi rilascia la tabella temporanea tramite Enterprise Manager

DROP TABLE ##mytemptable